C/C++之动态内存分配比较

2014-11-24 12:57:57 · 作者: · 浏览: 2

1、C malloc 和 free vs C++ new 和delete:


C 语言的malloc() 和free() 并不会调用析构函数和构造函数。C++的 new 和 delete 操作符 是 "类意识" ,并且当调用new的时候会调用类的构造函数和当delete 调用的时候会调用析构函数。


下面一个例子


运行结果:



如图一


注意:混合用malloc 和delete或者混合用new 和free 是不正确的。C++的new和delete是C++用构造器分配内存,用析构函数清除使用过的内存。


new/delete 优点:


2、C 的动态内存分配:


看如下例子MallocTest.cpp


结果:



图二


注意: