Вот код на 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;
}
В коде есть еще что-то, но это суть.
Я не тестировал этот код, но код, который я рассматриваю, очень хорошо протестирован и работает. Но как?
Спасибо.
РЕДАКТИРОВАТЬ: исправлена эта утечка памяти.