Nru*_*nga 4 c++ memory-management
如何确定C++ new运算符分配的内存大小.?
在C中,malloc具有以下语法:
void *malloc(size_t size);
Run Code Online (Sandbox Code Playgroud)
在这里我们知道我们分配的大小.
但是在C++中,我们如何确定在进行内存分配时分配的大小如下所示.我很想知道如何new确定需要分配的大小.
foo *pFoo = new foo();
Run Code Online (Sandbox Code Playgroud)
C++运算符new分配sizeof(T)字节(使用标准全局分配器::operator new(size_t)或自定义分配器(T如果已定义)).
之后,它调用构造函数(第一个基础和其他子对象,然后是构造函数T).
然而,一些被调用的构造函数分配更多内存是可能的,甚至是常见的.