内存分布之数据段

本文讨论了如何使用strings命令检查可执行文件内存分布,重点关注栈空间(函数调用时的局部变量)和堆空间(动态内存分配)。同时介绍了malloc和free在内存管理中的作用,以及只读空间的处理。
摘要由CSDN通过智能技术生成

我们需要一个命令来查看我们生成的可执行文件的内存分布
size 可执行文件名称
在这里插入图片描述
text为字符串,data为全局初始化空间,bss为未初始化变量空间

strings命令在对象文件或二进制文件中查找可打印的字符串。字符串可打印字符的任意序列,以换行符或空字符结束。 strings命令对识别随机对象文件很有用。
在这里插入图片描述
一个函数中,运行时,局部变量会进入栈空间

内存分布图

  1. 栈空间 函数运行
  2. 堆空间 运行时可以资源分配和释放
    分配
    malloc();
    一旦成功,返回分配好的地址,只需接收,对于新地址的读法,由程序员灵活把控,输入参数指定分配的大小
char *p;
P = (char*)malloc(100*sizeof(char));
if(p == NULL)
{
	error;
}

释放
free§;
3. 只读空间 程序结束时释放

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值