关闭

C++学习笔记 new与malloc的区别

标签: C++ new malloc
95人阅读 评论(0) 收藏 举报
分类:

    翻了一下C++课件,发现老师着重讲过new和malloc的区别和联系,反正这种东西面试也愿意问,就在这里记录一下。

    它们都是用来申请空间的,申请的空间在堆中。

    malloc是C语言的标准库函数,对应free()函数。而new是C++中新引入的关键字,是运算符,是语言本身的内容。和delete对应。

    malloc函数返回空指针,而new返回带有类型的指针。所以malloc需要类型转换。例子如下:

                 int* p = new int;

                 int*p = (int)malloc(sizeof(int));

    malloc和free不能激活构造函数和析构函数,也就是说不能为对象申请空间,而new和delete可以。这其实也是C++引入new的原因。 

     注意:释放内存后,应该把原来指向这块内存的指针只想NULL。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:376次
    • 积分:24
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档