下面是一些看起来很有趣的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;
}
的代码有更多的东西,但是这是它的要点。
我还没有测试过这段代码,但是我看到的代码经过了很好的测试,并且很有效。但是如何?
谢谢。
编辑:修复内存泄漏。
显示的代码泄漏内存 - 据推测,这在整个程序中不是问题。 –