相关疑难解决方法(0)

在什么情况下我使用malloc vs new?

我在C++中看到有多种方式来分配和释放数据,我知道当你打电话给malloc你时应该打电话free,当你使用new操作员时你应该配对,delete将两者混合是错误的(例如,调用free()创建的东西)与new操作员),但我不知道何时应该使用malloc/ free何时应该在我的真实世界程序中使用new/ delete.

如果您是C++专家,请告诉我您在此方面遵循的任何经验法则或惯例.

c++ malloc memory-management new-operator

447
推荐指数
12
解决办法
26万
查看次数

:: operator new(size_t)是否使用malloc()?

是在内部::operator new(size_t)调用malloc(),还是直接使用系统调用/特定于操作系统的库调用?C++标准说什么?

这个答案中它说:

malloc()保证返回与任何标准类型对齐的地址.::operator new(n)只保证返回一个不大于任何标准类型的地址n,如果T不是一个字符类型,那么new T[n]只需要返回一个对齐的地址T.

这表明new()不需要打电话malloc().

注意:这里有一个SO 问题有关的一切operator new其他比分配.

c++ malloc new-operator dynamic-memory-allocation

12
推荐指数
2
解决办法
3626
查看次数