Par*_*rag 5 c++ memory-management
有什么用的malloc,并free当我们有new和deleteC++中.我想这两个功能free和delete是一样的.
他们不一样.new调用构造函数,malloc只需分配内存.
此外,它是混合两者的未定义行为(即使用newwith free和mallocwith delete).
在C++中,你应该使用new和delete,malloc并且free出于与C的兼容性原因.
在C++中,使用malloc&free而不是new&很少有用delete.
我能想到的一个场景是:
如果你不想通过隐式构造函数调用来初始化你的内存,并且只需要一个确定的内存分配用于放置new,那么使用malloc而free不是new和它是完全正常的delete.
另一方面,重要的是要知道malloc并且new不一样!
直接的两个重要区别是:
new保证你的类的构造函数的callng用于初始化类成员,而malloc不是,一个人必须做一个额外的memset或相关的函数调用post malloc来初始化分配的内存来做一些有意义的事情.
一个很大的优点是,new你不需要NULL在每次分配后检查,只需附上异常处理程序就可以完成这项工作,从而节省了多余的错误检查malloc.
| 归档时间: |
|
| 查看次数: |
2198 次 |
| 最近记录: |