c程序内存分配
程序在存储时(没有调入到内存)分为代码区(text)、数据区(data)和未初始化数据区(bss)3个部分。
代码区(正文段):通常是执行的代码
数据段(全局初始化数据区/静态数据区):初始化的数据放在此处包括全局变量 int a=90;
bss (未初始化数据区):未初始化的数据包括NULL等 int sum[100]; int c;
堆区(heap):用于动态内存分配。堆在内存中位于bss区和栈区之间。一般由程序员分配和释放,若程序员不释放,程序结束时有可能由OS回收。
栈区:由编译器自动分配释放,存放为运行函数而分配的局部变量、函数参数、返回数据、返回地址等。