Вот некоторый код C ++, который мне просто кажется забавным, но я знаю, что он работает.
Определена структура, и в программе мы выделяем память с помощью указателя void. Затем структура создается с использованием выделенного буфера.
Вот код
typedef struct{
char buffer[1024];
} MyStruct
int main()
{
MyStruct* mystruct_ptr = 0;
void* ptr = malloc(sizeof(MyStruct));
// This is the line that I don't understand
mystruct_ptr = new (ptr) MyStruct();
free(ptr);
return 0;
}
В коде больше вещей, но в этом суть.
Я не тестировал этот код, но код, на который я смотрю, очень хорошо протестирован и работает. Но как?
Спасибо.
EDIT: исправлена утечка памяти.