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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vegas_I
1 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 103
#1

Нужно ли при удалении динамического массива присваивать NULL? - C++

19.01.2014, 15:57. Просмотров 559. Ответов 3
Метки нет (Все метки)

Вот создал я динамический массив N на M:
C++
1
2
3
4
int **mas;
    mas=new int*[n];
    for(i=0;i<n;i++)
        mas[i]=new int[m];
А вот его удаление:
C++
1
2
3
4
for(i=0;i<n;i++)
delete []mas[i];
delete []mas;
mas=NULL;
Вопрос: NULL присваивать обязательно? И что он вообще из себя представляется? Зачем его пишут?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2014, 15:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно ли при удалении динамического массива присваивать NULL? (C++):

Ошибка при удалении динамического массива - C++
Доброго времени суток! ПРоблема заключается в том, что при попытке очистить память из под динамического массива вылетает ошибка &quot;access...

Ошибка при удалении динамического массива - C++
Добрый вечер! Ругается на HEAP CORRUPTION DETECTED в строке с delete vertex; В чём может быть дело? void read_stl (char*...

Ошибка при удалении динамического массива - C++
Непонятная мне ошибка при удалении массива #include &lt;iostream&gt; #include &lt;conio.h&gt; using std::cout; using std::cin; using...

Вылет программы при удалении динамического массива - C++
Писал программу с использованием динамического массива, все компилилось нормально, но в какой-то момент программа просто начала вылетать,...

Heap corruption detected при удалении динамического массива - C++
mystring.cpp - здесь происходит ошибка в функции MyString::operator на строке delete s. В чем тут может быть дело? #include &quot;mystring.h&quot; ...

Возникает ошибка при удалении динамического массива символов в деструкторе класса - C++
Всем привет. Есть приватная переменная, указатель на строку wchar_t *pUAgent; В конструкторе я ее инициализирую: pUAgent =...

3
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
19.01.2014, 16:02 #2
Vegas_I, Для удаления массива нужно просто вызывать delete
1
aLarman
643 / 564 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
Завершенные тесты: 1
19.01.2014, 16:10 #3
Цитата Сообщение от Vegas_I Посмотреть сообщение
Зачем его пишут?
для удобства с точки зрения проверки существует ли массив или нет, т.е объявляем указатель и зануляем, потом создаем массив и этому указателю присваиваем значение в памяти на массив, затем массив удаляем и зануляем указатель, т.е можно проверить существует ли массив в данный момент времени
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.01.2014, 16:13 #4
Цитата Сообщение от Vegas_I Посмотреть сообщение
NULL присваивать обязательно?
не обязательно, но это как правило хорошего тона

Добавлено через 44 секунды
Цитата Сообщение от Vegas_I Посмотреть сообщение
И что он вообще из себя представляется?
в С++ NULL это 0
1
19.01.2014, 16:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2014, 16:13
Привет! Вот еще темы с ответами:

При удалении первого элемента из динамического списка присваивается плохой указатель - C++
Проблема появляется только при удалении первого элемента. // Запись содержит марку автобуса, максимальную скорость, вместимость. //...

Ошибка при удалении массива - C++
Проблема в том, что при попытке добавить строки удаления массивов программа вылетает, если же их нету, то всё стабильно. #include...

Ошибка при удалении массива с помощью delete - C++
Изучаю C++ и у меня задание разбить текст неопределенной длинны на массив строк. Нацарапал класс типа string ниже выложу. В него задача...

При удалении динам.массива Segmentation failure - C++
Программа работает но когда удаляем delete buf; то возникает Segmentation failure.... без его удаления всё нормально... #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.