C++编程失乐园

致力于解决论坛的不足,探讨C++的原理

C/C++随笔 之malloc/free 和new/delete区别

malloc/free ,new/delete
相信大家对上面两个命令都不默认
大家这两个命令其实是又区别的
首先
1.malloc 与free 是C++/C 语言的标准库函数,new/delete 是C++的运算符
2.不能够把执行构造函数和析构函数的任务强加于malloc/free
3.两者都可以使用异常出错函数,不过个人觉得malloc/free对于异常出错处理更加方便
malloc/free这个命令只是对内存操作,纯内存操作函数
而new/delete命令会执行构造函数和析构函数
所以我的意见是:
对于非系统内部数据的话,尽量使用new/delete
当然如果是自己新建类的话,也使用new/delete,不然怎么调用构造函数和析构函数那?
对于系统内部函数的话,使用malloc/free
int *p = (int*)malloc(sizeof(int)*num);
class A
{
   A();
   ~A();
};

A *a = new A;
new也有一个好处,可以处理不同的构造函数
Example Code:
class A
{
   A();
   ~A();
}
A *a = new A;
在类声明种加入
A(int x,int y);
就可以使用
A *a = new A(1,2);

posted on 2006-12-28 10:36 木木头 阅读(405) 评论(0)  编辑 收藏 引用 所属分类: C++特性


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2006年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

常用链接

留言簿(3)

随笔分类(29)

搜索

最新随笔

最新评论