如何确定C++ new运算符分配的内存大小。 ?
在 C 中,malloc 的语法是:
void *malloc(size_t size);
这里我们知道我们分配的大小。
但在 C++ 中,当我们进行如下内存分配时,我们如何确定分配的大小。我很想知道 new
如何确定需要分配的大小。
foo *pFoo = new foo();
最佳答案
C++ 运算符 new
分配 sizeof(T)
字节(使用标准全局分配器 ::operator new(size_t)
或T
的自定义分配器(如果已定义)。
之后它调用构造函数(首先是基和其他子对象,然后是 T
本身的构造函数)。
然而,某些调用的构造函数分配更多内存是可能的,甚至是常见的。
关于c++ - 确定 C++ 中新运算符分配的内存大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23052559/