c++ - 确定 C++ 中新运算符分配的内存大小

标签 c++ memory-management

如何确定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/

相关文章:

c++ - 为什么我收到 "unresolved external symbol"消息?

c++ - 任务计划程序 : run task each hour from the current moment

c++ - 将 new[] 与 delete 配对怎么可能只导致内存泄漏?

c - 释放为树分配的内存 - C

c - 使用for循环分配内存

c++ - 在后退按钮或关闭应用程序时调用析构函数?

c++ - 二分搜索插入C++中的段错误

c++ - C++0x 中的缩小转换。只是我,还是这听起来像是一个重大变化?

c++ - 跨 dll 边界的内存分配和释放

java - Java中字符串的不可变性会导致内存不足吗