Можно создать дубликат:
Is there any danger in calling free() or delete instead of delete[]?Можете ли вы смешать бесплатно и конструктор в C++?
Я читал этот вопрос:
In what cases do I use malloc vs new?
Кто-то поднял, что одна из причин, чтобы использовать таНос было, если вы собираетесь использовать бесплатно.
Мне было интересно: правильно ли смешивать бесплатный вызов и инициализацию конструктора в C++?
т.е.
Могу ли я сказать:
my_type *ptr = new my_type;
free(my_type);
Это как-то недействительна или хуже, чем:
my_type *ptr = new my_type;
delete my_type;
, кроме того, что это не C++ МОГ?
Аналогичным образом, не могли бы вы сделать наоборот? Можете ли вы сказать,
my_type *ptr = (my_type *)malloc(sizeof(my_type));
delete my_type;
Пожалуйста сливаться, если это дубликат, я искал, но не видел вопрос вдоль этой линии именно о таНос/удалить/новый/бесплатно спросил.
Вопрос - обман (обмана). http://stackoverflow.com/questions/1612031/is-there-any-danger-in-calling-free-or-delete-instead-of-delete – Serapth
Если вы хотите использовать malloc/free с объектами C++, вы можете используйте malloc и добавьте новый оператор, чтобы вызвать конструктор, а затем удалить его, и освободить память. Или создайте настраиваемый распределитель, если это применимо. –
@ Vlad: Даже после использования нового места вы все равно не можете вызвать delete. Но вы можете вручную вызвать деструктор объекта перед отправкой памяти на бесплатную. –