栈与堆

栈:空间小,由操作系统管理内存,包括分配,回收
堆:空间大,由程序员自行管理内存,一定注意内存回收,避免内存泄漏
动态内存
原因:1.栈空间小(1M)
2.根据变量定义数组长度
创建内存:
malloc,最常用
calloc,将每一个元素置0
realloc:修改内存的大小
释放内存:free,不释放则会出现内存泄漏,
泄漏的内存自动返还:
1.程序(进程)退出
2.关机(重启)
动态内存分配的空间在堆,堆很大,最大能分配的连续块1.8G左右
内存泄漏:申请的内存,没有释放
free崩溃的原因:本质修改,丢失内存的头或者尾信息
1.数组越界(修改了尾信息)
2.移动动态内存的地址(丢失头信息)
3.重复释放同一段内存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值