Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > позднее задание длины массива


Автор: Dreamer_0x01 21.5.2005, 18:08
хочу создавать массив в конструкторе объекта, так как заранее не знаю его длины.
делаю с помощью такой конструкции (так я делал на JAVA).
Код

int *buf //так задан массив в моем классе

в конструктор класса передаю параметр N, и применяю следующий код:
Код

buf = new int[N];

а в деструкторе пытаюсь освободить память кодом
Код

delete buf.

На этом месте дебаггер вылетает с ошибкой. Что я делаю неправильно?

Автор: sergejzr 21.5.2005, 18:33
Dreamer_0x01, ты всё правильно делаешь. надо больше кода, иначе ничего не сказать.
ЗЫЖ
конечно надо писать
delete [] buf;
Но в принципе дебагер на такое ругаться не должен...

Автор: Dreamer_0x01 21.5.2005, 19:17
Спасибо за ответ, а то я думал что именно в этом, или синтаксис неправильный был.
Благодаря чему нашел дырку - оказывается, в программе было обращение к элементу массива за пределами N. Но на это дебагер не выругался (хотя странно, обычно ругается). А выругался только при расчистке памяти.

Автор: sergejzr 21.5.2005, 19:19
Когда за пределы выходишь, уже нельзя ни на что надеятся. Может заругается, а может нет... smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)