之前写过几篇关于C语言内存相关的文章,现在对之前的知识点进行补充
https://blog.csdn.net/qq_37120369/article/details/104349078
https://blog.csdn.net/qq_37120369/article/details/109553140
以Linux下的C程序为例,C程序用gcc编译器默认编译生成名为a.out可执行程序,当我们使用./a.out执行可执行程序时
操作系统加载这个可执行程序,产生一个进程。
图一为代码在可执行程序中的段分配,图二为a.out执行时产生的一个进程
图一
图二
栈和堆是程序运行时由操作系统分配的,代码中的a,b变量就存放在栈空间