比较使用C++的new和delete运算符的动态内存分配,以及使用C标准库函数malloc和free的动态内存分配。

来源:百度知道 编辑:UC知道 时间:2024/06/28 05:43:13

new 是个操作符,和什么"+","-","="...有一样的地位.

malloc是个分配内存的函数,供你调用的.

new是保留字,不需要头文件支持.
malloc需要头文件库函数支持.

new 建立的是一个对象,
malloc分配的是一块内存.

new建立的对象你可以把它当成一个普通的对象,用成员函数访问,不要直接访问它的地址空间
malloc分配的是一块内存区域,就用指针访问好了,而且还可以在里面移动指针.

总的来说问new和malloc有什么区别,就好像问"飞机和汽车有什么分别"
----除了都是交通工具,其他的特征全是分别...

两者都是用来分配内存的。但是new里面不仅分配内存,还同时调用相应的构造函数,相应的delete在取消内存占用时也调用析构函数。故new、delete更加合理、安全。这也是《effictive C++》教你尽量用new而少用malloc的原因