c++
iddd
这个作者很懒,什么都没留下…
展开
-
C++ malloc free 和 new delete有什么区别
1、new、delete是c++中的操作符,malloc、free是c++中的标准库函数 2、new返回的是指定类型的指针,且可以自动计算申请内存的大小,malloc需要我们自己计算申请内存的大小; 3、一般在调用对象时,会调用构造函数进行初始化,在对象消亡时,需要调用析构函数,malloc、free是运算符不是操作符,不在编译器的控制范围内,你不能在程序开始自动调用构造函数和程序结束自动调用析构函数 参考 ...原创 2021-08-12 12:02:45 · 193 阅读 · 0 评论 -
栈和堆的区别
1、首先栈和堆有2种,一种是数据结构,一种是内存分配的方式,二者关系不大 2、计算机内存分配区域: 栈区:主要用来存放函数的参数值、局部变量,函数执行完毕后,内存自动释放,由系统自动分配,内存分配的效率很高,是一块连续的存储区,但是内存大小很小,一般就几M; 堆区:指通过new、malloc等申请的内存区域,编译器不负责他们内存的释放,一般需要代码控制进行内存释放,一般说的“内存泄漏”就是堆区,因此new和delete、malloc和free一般是一起出现,由于是手动分配,是不连续的存储区域,内存区域较大原创 2021-08-12 11:29:53 · 965 阅读 · 0 评论