编程规范之内存管理部分

首先我们要清楚什么是 静态存储区、堆heap、栈stack。

①静态存储区,内存在程序编译的时候就已经分配好,存在于程序的整个运行期间。此区域存放的有 全局变量、static静态变量、常量。

②堆heap,也称为动态内存分配。通常用到的malloc和new函数,就在堆上分配内存,这时一般由编程人员灵活使用,也通常在这个地方容易出问题,发生内存泄漏。

③栈stack,通常某个函数里的局部变量就是在栈上创建的,函数执行完会自动释放。特点效率高,但是内存容量有限。


如何避免内存错误呢?那么就需要加强自己的编程修养。

㈠ 每次用malloc或new分配内存,都检查返回的指针地址,知道是否分配成功。如果后面直接对空的地址指针进行操作就会出现内存错误。

     对非配的内存区域进行初始化。(联想到定义一个数组同样一定要先初始化) 

㈡ malloc 和free 配对使用, new和delete对应。如果只分配内存,而不去释放它,随着程序运行时间变长最终会导致内存资源耗尽,这是一个很容易忽视的错误。

㈢ 指针越界的错误,通常这样的错误发生在循环语句中。

㈣ 关于野指针的问题,有人认为对于使用完后的指针 ptr = NULL,显得多余。其实不然,注意细节问题可以减少大量的后期调试 和 维护的 时间。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值