malloc与new

malloc与new

 (2009-12-07 20:01:31)
标签: 

杂谈

 
 原型:extern void *malloc(unsigned int num_bytes);
 
首先,介绍一下malloc的原型:  
头文件:#include <malloc.h> 或 #include <alloc.h> (注意:alloc.h 与 malloc.h 的内容是完全一致的。)
 
功能:分配长度为num_bytes字节的内存块
 
说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
 
当内存不再使用时,应使用free()函数将内存块释放。
相同点:
malloc和new都是分配到堆上,栈上分自动变量(就是局部变量)

区别:
1、new 是c++中的操作符,malloc是c 中的一个函数
2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数
3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而malloc没有这些信息。

4、new delete 是运算符,malloc,free是函数
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。

转载:http://blog.sina.com.cn/s/blog_5d9c20070100g8dn.html
posted @ 2013-07-09 17:53  simon1024  阅读(113)  评论(0)    收藏  举报