int main()
{
void* Foo = new???
delete Foo;
}
你是怎么做类似上述的事情的?你不能放 new void[size]
。而且我不想知道如何使用 malloc()
和 free()
来做到这一点。我已经知道这行得通。我很好奇,想知道 new 和 delete 是怎么做的。
我在谷歌上搜索了一下,看到了一些关于 operator new(size)
;和 operator delete(size)
;
这些和new
/delete
有什么区别?为什么 C++ 不仅仅允许 new void* [size]
?
最佳答案
这样就可以了:
int main()
{
void* Foo = ::operator new(N);
::operator delete(Foo);
}
这些运算符分配/释放以字节为单位的原始内存,就像 malloc
。
关于c++ - 在 void 指针上使用 new,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14111900/