u014517524的博客

834168589@qq.com

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

    翻了一下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。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014517524/article/details/46819907
文章标签: C++ new malloc
个人分类: C++
上一篇C++学习笔记 堆与栈的区别
下一篇C++学习笔记 容器
想对作者说点什么? 我来说一句

newmalloc区别和用法

2011年11月16日 17KB 下载

没有更多推荐了,返回首页

关闭
关闭