Страница 1 из 1

Массив

Добавлено: 09 июл 2010, 08:39
like-nix
Всем ку!

Подскажите пожалуйста, как правильно удалить(освободить память) массива 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

Re: Массив

Добавлено: 09 июл 2010, 13:59
Decoder
Нужно сначала пройтись циклом по всем элементам Array1D и для каждого вызвать оператор delete.
А только после этого уже вызвать delete[] для массива Array2D.