C++内存分配的方式

本文详细介绍了C++中三种内存分配方式:静态存储区分配、栈上创建和堆上分配。重点讲解了每种方式的特点及其应用场景,如静态变量与全局变量的自动初始化,栈上局部变量的自动管理,以及堆上动态内存分配需要注意的内存泄漏问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天在线笔试的时候最后一道题就是问这个,但是自己只答了栈和堆,查了资料来补充说明:

   C++内存分配的方式有3种:

       1.从静态存储区分配,程序在编译的时候就已经分配好了,并且在整个运行期间都存在,比如静态变量和全局变量。

          ps:实际上静态变量和全局变量你如果不初始化,系统会自动帮你初始化为0。

       2.在栈上创建,函数参数和内部的非静态局部变量(包括数组),以及一些函数返回值;其开辟和释放都是由操作

          系统帮我们完成,在VS下我们可以在项目》属性》链接器》系统》堆栈保留大小中设置,单位是 字节

       3.在堆上分配,也称为动态内存分配。在程序运行时用malloc和new分配,必须有我们手动用free和delete回收,

          否则就会出现内存泄漏!避免内存泄漏的方式就是用RAII机制,可以将其封装为一个类,在对象出了作用域时就会

          调用析构函数并释放内存;在堆上分配的内存方便我们灵活的运用内存,但是也极易出现内存泄漏等恶劣影响,所

          以我们要谨慎使用它。

                                                                                                                                     ----------------参考《高质量的C C++编程》7.1节


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值