Re[3]: new для выделения памяти под массив ( new char[ 10 ]
От: Аноним  
Дата: 25.09.03 06:35
Оценка:
Здравствуйте, Андрей Тарасевич, Вы писали:

АТ>Совсем не обязательно только в этом случае. Механизмы 'new/delete' и 'new[]/delete[]' могут быть принципиально различными. Смешивание этих способов выделения/освобождения памяти потенциально ведет к неопределенному поведению независимо от характеристик деструктров объектов.


А delete[] знает о типе объектов?
например такое нормально?
char* pc = new[16];
long* pl = reinterpret_cast< long* >( pc );
delete[] pl;


а такое?
ClassA* pA = new ClassA[16];
ClassB* pB = reinterpret_cast< ClassB* >( pA );
delete[] pB;


А если выделить массив char, потом сделать placement new и освобождать память как массив объектов?
Будут корректно вызваны деструкторы объектов в массиве?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.