下面是google上找的一张c内存布局图,我先基于这张图介绍下各个内存区域的情况
1、正文(代码段):每个程序开始前,都有系统加载代码指令到这里,用于执行,当然都是机器码
2、初始化的数据段:存放已经初始化的非自动变量,如全局变量int i=0;等等
3、未初始化的数据段(BSS):存放未初始化的非自动变量,如全局变量int i;等等
4、堆:动态申请的区域,如malloc、calloc、realloc等产生的
5、栈:自动变量或函数调用信息保存的区域,如局部变量int i;等等