Вот код C++, который выглядит мне смешно, но я знаю, что он работает.Создание экземпляра из буфера указателей void
Существует определенная структура, и в программе мы выделяем память с помощью указателя 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: Исправлена утечка памяти.
Показанный код показывает утечку памяти - предположительно, это не проблема в полной программе. –