Хорошо, что не скомпилировалось из-за отсутствия #include <memory>
Если бы скомпилировалось, оно бы взяло значение неинициализированного указателя z и расстреляло бы память по этому адресу.
Надо так
char here[sizeof(CS)]; // лучше взять boost::aligned_storage<sizeof(CS)>void* there = malloc(sizeof(CS)); // или MS-specific - aligned_malloc(sizeof(CS),__alignof(CS))
CS* x = new(here) CS();
CS* y = new(there) CS();
x->~CS();
y->~CS();
free(there);
Здравствуйте, Кодт, Вы писали:
К>Хорошо, что не скомпилировалось из-за отсутствия #include <memory> К>Если бы скомпилировалось, оно бы взяло значение неинициализированного указателя z и расстреляло бы память по этому адресу.
ну конкретно в этом случае расстрела не будет, ибо в память никто не пишет
Здравствуйте, uzhas, Вы писали:
К>>Хорошо, что не скомпилировалось из-за отсутствия #include <memory> К>>Если бы скомпилировалось, оно бы взяло значение неинициализированного указателя z и расстреляло бы память по этому адресу. U>ну конкретно в этом случае расстрела не будет, ибо в память никто не пишет
в дебаге неинициализированные переменные будут заполнены спец значениями
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]