Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2015, 00:36   #1
Gdasar
Пользователь
 
Регистрация: 18.02.2013
Сообщений: 60
По умолчанию Правильное удаление двумерного динамического массива

Есть класс P

Я создаю двумерный массив объектов этого класса:
Код:
int H = 10;
P **c = new P*[H]; 
for(int iter = 0; iter < H ; iter++)
{
   c[iter] = new Parsing();
}
Удаляю его так:
Код:
for(int iter = 0; iter < H ; iter++)
{
    c[iter]->Free();
}
delete[] c;
Все хорошо - ошибок нет.
Но если я удаляю таким образом, то появляется ошибка.
Код:
for(int iter = 0; iter < H ; iter++)
{
    delete[] c[iter];
}
delete[] c;
Скажите, как правильно удалить массив.
Изображения
Тип файла: png error1.png (2.5 Кб, 116 просмотров)
Gdasar вне форума Ответить с цитированием
Старый 23.02.2015, 00:47   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от Gdasar Посмотреть сообщение
Но если я удаляю таким образом, то появляется ошибка.
Код:
for(int iter = 0; iter < H ; iter++)
{
    delete[] c[iter];
}
delete[] c;
Ошибка Access Violation возникает когда идёт обращение к области памяти обращение к которой запрещено.
Вы пытаетесь удалить массив которого нет.

Последний раз редактировалось Streletz; 23.02.2015 в 02:25.
Streletz вне форума Ответить с цитированием
Старый 23.02.2015, 00:50   #3
Gdasar
Пользователь
 
Регистрация: 18.02.2013
Сообщений: 60
По умолчанию

Streletz, а как же тогда его правильно удалить?
Gdasar вне форума Ответить с цитированием
Старый 23.02.2015, 02:30   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от Gdasar Посмотреть сообщение
Streletz, а как же тогда его правильно удалить?
Через Free. У Вас одномерный динамический массив из объектов класса Parsing.
Для справки. Двумерные массивы выглядят примерно так:
Код:
int a[2][3];
Streletz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объявление динамического двумерного массива kineziz Общие вопросы C/C++ 4 27.05.2012 15:40
Матрица из двумерного динамического массива. Abrokadawr Фриланс 5 03.11.2011 22:28
Ввести элементы динамического двумерного массива Alexeytur Помощь студентам 1 28.01.2011 10:01
Передача двумерного динамического массива в метод Дырдин Общие вопросы C/C++ 1 19.03.2010 09:45
Удаление строки из двумерного динамического массива hidraulik Общие вопросы C/C++ 0 08.12.2009 10:48