C++内存分配

本文探讨了C++中动态内存分配的概念,包括堆区、栈区、全局数据区和代码区的区别。强调了new和delete操作符在内存管理中的作用,以及如何处理内存分配失败的情况。同时提醒读者注意内存泄漏问题,建议在使用完动态分配的内存后及时释放。
摘要由CSDN通过智能技术生成
      自己在处理C++内存分配上的一点心得,如果有错误,欢迎大家指出。
      变量和对象在内存中的分配都是编译器在编译程序时安排好的,但同样带来了不便,如数组必须大开小用,指针必须指向一个已经存在的变量或对象。动态内存分配解决了这个问题。
      C/C++定义了4个内存区间:代码区,全局数据区,栈区,堆区。定义变量是在编译程序的时候就进行的静态存储分配。所有的动态分配都是在堆区进行的。不过是不能说的这么绝对的,与编译器和库都是有关联的。函数的参数未必通过堆栈进行分配,这与具体的编译器都是有关的。而对于内存分配失败时的返回值也不一定为NULL,很多的编译器都可以捕获new操作符抛出的异常。

      全局数据区     代码区     栈区          堆区
      data                code       stack          heap

      全局变量         函数      局部变量     new,delete申请的空间
      静态数据                      函数参数     
      常量                              返回地址     
                                            返回数据

      堆内存的分配和释放是重复利用有
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值