Форум программистов, компьютерный форум CyberForum.ru

Оператор delete[] - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двумерный Динамический массив http://www.cyberforum.ru/cpp-beginners/thread153382.html
Здравствуйте, такая проблема: не могу задать int** и char**...проблема в том что в функцию передются их размеры , но они не константы и компилятор пишет ошибку, и не очень понимаю как выделять память..
C++ Неориентированный граф!!! Еще раз обращаюсь за помощью к форуму..от этих задач зависит стипендия! Помогите пожалуйста! Задача 1. Для неориентированного графа определить вершины с максимальной степенью. Выбрать одну из них и удалить. Задача 2. Определить количество вершин неориентированного графа с четной степенью, вывести их список. Изменить степень заданной вершины с помощью операции удаления ребра. http://www.cyberforum.ru/cpp-beginners/thread153326.html
C++ Как определить конверсию к типу?
Заранее извиняюсь за ужасное название темы, но ничего другого придумать не смог. У меня есть свой класс(пусть зовется MY), который реализует математические действия(умножение, деление, извлечение квадратного корня и т.д.) с большой точностью. Если сделать выполнить следующую строчку(вместо переменных написаны их типы и на месте * может быть любой другой оператор): int=int*MY; То компилятор...
C++ D-Link c++
как можно приконнектится к роутеру D-Link с помощью языка с++...весь инет перерыл не нашел ничего путного
C++ Балансировка бинарных деревьев http://www.cyberforum.ru/cpp-beginners/thread153292.html
Вот если кому то потребуется вылаживаю рабочую балансировку бинарных деревьев, если есть советы по улучшению то сс удовольствием выслушаю)) //______________Реализация балансировки__________________ void tree::Balance() { if(root!=NULL)Balance(root, NULL);//Проверка не пустое ли дерево, если нет то запуск балансировки с передачей адреса корня } int tree::Balance(elem* r,elem* p) {
C++ Рекурсия=( Всем доброго времени суток=) помогите написать программу, ну или хотя бы объясните задание, а то я его не очень понял =( составить рекурсивную функцию, определяющую в заданной символьной строке кол-во символов, являющихся цифрами и заменяющую каждую букву младшей десятичной цифрой данного числа Заранее благодарен=) подробнее

Показать сообщение отдельно
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
13.07.2010, 12:58     Оператор delete[]
Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include  <iostream>
#include <cstdlib>
#include <ctime>
#define   stop __asm nop
 
int main()
{
        int N,M;
        N=3;
        M=4;
    
        //создаем указатель на одномерный динамический массив(1) с размерностями N*M
        int*pointer2dyn_arr=new int[N*M];
 
        //указатель на новый дин. массив(2), созданный для удобства обращения к элементам     одномерного массива
        int**pp2dyn_arr=new int *[N]; 
        
        //заполняем массив 2
        for(int i=0;i<N;i++)        
        {
            pp2dyn_arr[i]=pointer2dyn_arr+i*M;
        }
        
        //устанавливаем стартовую точку последовательности, которую генерирует rand()
        srand((unsigned)time(0));
        //заполняем массив 1
        for (int i=0;i<(N*M);i++)
        {
            pp2dyn_arr[0][i]=rand()%89+10;  //от 10 до 99
            if (i%M==0)std::cout<<'\n';
            std::cout<<pp2dyn_arr[0][i]<<' ';
            
        }
 
////  сумма элементов.
        int sum1=0; 
        for(int i= 0; i < (N*M) ; ++i)  
        {
            sum1+=pp2dyn_arr[0][i];
        }
        std::cout<<'\n';
    
    //Задание2а. В сформированном массиве отсортируйте каждую строку по
    //убыванию значений. Используйте сортировку "выбором"
 
        for(int k=0;k<N;++k) //пробегаем по строкам
        {
            for(int i = 0; i < (M) ; i++) //сортируем 
            {   
                int*max_el=pointer2dyn_arr;
                int*next_el=pointer2dyn_arr+1;
                for(int j=i+1;j<M;j++)  //пробегаем по ячейкам
                {
                    if(*next_el>*max_el)max_el=next_el;
                    next_el++;
                }
                int tmp=*max_el;
                *max_el=*pointer2dyn_arr;
                *pointer2dyn_arr=tmp;
                pointer2dyn_arr++;  
            }
        }
        
    //вывод отсортированных значений
        for (int i=0;i<(N*M);i++)
            {
                if (i%M==0)std::cout<<'\n';
                std::cout<<pp2dyn_arr[0][i]<<' ';
            }
        stop
    
        delete[] pointer2dyn_arr;
        pointer2dyn_arr=0;
        //delete[] pp2dyn_arr;
        //pp2dyn_arr=0;
        
        stop
return 0;
}
Во время выполнения выдает ошибку на 72 строке:
Debug Assertion Failed!
...
Expression:_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
...
вот что пишет в окне отладка:
Пр1сем.exe привело в действие точку остановка
HEAP[Пр1сем.exe]: Invalid address specified to RtlValidateHeap( 00520000, 005249A0 )
ОС Windows инициировала точку останова в Пр1сем.exe.

Это может быть вызвано повреждением кучи и указывает на ошибку в Пр1сем.exe или в одной из загруженных им DLL.

Возможной причиной так же может быть нажатие пользователем клавиши F12, когда фокус принадлежит Пр1сем.exe
Помогите, пожалуйста, разобраться с ошибкой.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru