::operator new(size_t)
会在内部调用malloc()
,还是直接使用系统调用/特定于操作系统的库调用?C++标准有什么说法?在this answer中提到:
这表明
malloc()
保证返回对于任何标准类型都对齐的地址。::operator new(n)
仅保证返回对于任何不大于n
的标准类型都对齐的地址,如果T
不是字符类型,则只需要为T
对齐即可。
new()
不能要求调用malloc()
。注意:有一个关于
operator new
除了分配之外的所有操作的SO question。
free()
而不是delete
释放使用new
关键字分配的指针。 - i486