Re: как работает delete []ptr?
От: Alik Украина  
Дата: 15.07.02 12:29
Оценка: 1 (1)
Здравствуйте epflorov, Вы писали:

E>Здравствуйте.


E>Тема http://www.rsdn.ru/forum/message.asp?mid=72857
Автор:
Дата: 15.07.02
напомнила мне о следующем.


E>Если мы не можем знать размер массива после его выделения, то как компилятор может вызвать деструкторы для каждого элемента массива.

E>то есть

E>
E>...
E>int i = 100;
E>foo *ptr = new foo[i];
E>...
E>delete []ptr; //откуда здесь становится известно о количестве элементов в массиве?
E>


Читаем учебники (т.е. Страуструпа)
"Стандартная реализация new выделяет памяти немного больше, чем потребовалось бы для статического объекта. Как правило, используется одно дополнительное слово для хранения размера объекта".
С уважением. Алик.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.