Массив

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
like-nix
Сообщения: 8
Зарегистрирован: 13 окт 2008, 16:01

Всем ку!

Подскажите пожалуйста, как правильно удалить(освободить память) массива array2D.

Код: Выделить всё

Array1D<Elem>* array2D =  static_cast<Array1D<Elem>*>
	operator new[](sizeof(Array1D<Elem>)* first);
for(int i = 0; i < first; ++i)
{
	new(array2D + (sizeof(Array1D<Elem>)* i))Array1D<Elem>(second, 0);
}
Я пробую operator delete[], но в этом случае нет вызова деструктора Array1D
Аватара пользователя
Decoder
Сообщения: 308
Зарегистрирован: 19 фев 2008, 23:11
Откуда: Moscow

Нужно сначала пройтись циклом по всем элементам Array1D и для каждого вызвать оператор delete.
А только после этого уже вызвать delete[] для массива Array2D.
Поумнеть несложно, куда труднее от дури избавиться.
Ответить