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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Имитация работы АЗС (ООП) http://www.cyberforum.ru/cpp-beginners/thread153396.html
Задача: написать программу, имитирующая работу АЗС в объектно ориентированном виде. У меня есть программа, написаная на delphi, но она не в ООП. Если надо могу её код написать.
C++ Двумерный Динамический массив Здравствуйте, такая проблема: не могу задать int** и char**...проблема в том что в функцию передются их размеры , но они не константы и компилятор пишет ошибку, и не очень понимаю как выделять... http://www.cyberforum.ru/cpp-beginners/thread153382.html
C++ Неориентированный граф!!!
Еще раз обращаюсь за помощью к форуму..от этих задач зависит стипендия! Помогите пожалуйста! Задача 1. Для неориентированного графа определить вершины с максимальной степенью. Выбрать одну из них...
C++ Как определить конверсию к типу?
Заранее извиняюсь за ужасное название темы, но ничего другого придумать не смог. У меня есть свой класс(пусть зовется MY), который реализует математические действия(умножение, деление, извлечение...
C++ D-Link c++ http://www.cyberforum.ru/cpp-beginners/thread153300.html
как можно приконнектится к роутеру D-Link с помощью языка с++...весь инет перерыл не нашел ничего путного
C++ Балансировка бинарных деревьев Вот если кому то потребуется вылаживаю рабочую балансировку бинарных деревьев, если есть советы по улучшению то сс удовольствием выслушаю)) //______________Реализация... подробнее

Показать сообщение отдельно
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219

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

13.07.2010, 12:58. Просмотров 1413. Ответов 13
Метки (Все метки)

Код:
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
Помогите, пожалуйста, разобраться с ошибкой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru