【发布时间】:2013-01-01 16:03:40
【问题描述】:
int main()
{
void* Foo = new???
delete Foo;
}
你是怎么做类似上述的事情的?你不能放new void[size]。而且我不想知道如何使用malloc() 和free()。我已经知道这行得通。我很好奇,想知道 new 和 delete 是怎么做的。
我在谷歌上搜索了一下,看到了一些关于 operator new(size) 的信息;和operator delete(size);
它们和new / delete 有什么区别?为什么 C++ 不仅仅允许新的void* [size]?
【问题讨论】:
-
为什么要在 C++ 中使用
void *? -
我很好奇,因为我看到它是在 C 中完成的。在 C 中,我看到有人这样做 void* Foo = malloc(size);不是一样的吗?
-
不,不是。在 C++ 中,
new type[3]分配 3 倍于 malloc 必须看起来像这样的类型的大小:malloc(3*sizeof(type))
标签: c++