Каждое использование new
должно быть сбалансировано delete
, а каждое использование new[]
должно быть сбалансировано delete[]
.
for(int i=0;i<N;i++)
delete array[i];
delete[] array;
Это будет уместно, только если вы инициализировалимассив как:
Objects **array = new Objects*[N];
for (int i = 0; i < N; i++) {
array[i] = new Object;
}
Тот факт, что ваш исходный код дал вам ошибку компиляции , является сильным намеком на то, что вы делаете что-то не так.
Кстати,обязательно: избегайте выделения массивов с new[]
;вместо этого используйте std::vector
, и тогда его деструктор позаботится о вашей очистке.Кроме того, он будет безопасен для исключительных ситуаций, поскольку не вызывает утечки памяти при возникновении исключений.