【发布时间】:2016-04-21 04:29:53
【问题描述】:
::operator new(size_t) 是在内部调用malloc(),还是直接使用系统调用/特定于操作系统的库调用? C++ 标准是怎么说的?
在this answer 中说:
malloc()保证返回与任何标准类型对齐的地址。::operator new(n)仅保证返回与不大于n的任何标准类型对齐的地址,如果T不是字符类型,则只需 newT[n]返回与T对齐的地址.
这表明不能要求new() 调用malloc()。
注意:question 关于 operator new 所做的所有事情其他,而不是分配。
【问题讨论】:
-
类似的问题是:是否可以使用
free()而不是delete来释放使用new关键字分配的指针。
标签: c++ malloc new-operator dynamic-memory-allocation