宁波网站优化平台,如何建设网站使用,南京网络推广外包,网站制作需要什么#xff08;1#xff09;栈区#xff08;stack#xff09;#xff1a;由编译器自动分配和释放#xff0c;存放函数的参数值、局部变量的值等#xff0c;其操作方式类似 于数据结构中的栈。 #xff08;2#xff09;堆区#xff08;heap#xff09;#xff1a…
1栈区stack由编译器自动分配和释放存放函数的参数值、局部变量的值等其操作方式类似 于数据结构中的栈。 2堆区heap一般由程序员分配和释放若程序员不释放程序结束时可能由操作系统回收。分配 方式类似于数据结构中的链表。 3全局区静态区static全局变量和静态变量的存储是放在一块的初始化的全局变量和静态 变量在一块区域未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系 统自动释放。 4文字常量区常量字符串就是存放在这里的。 5程序代码区存放函数体的二进制代码。 例如 int a0; //全局初始化区 char *p1; //全局未初始化区 main() { int b; //栈 char s[]abc; //栈 char *p3 1234567; //在文字常量区 static int c 0 ; //静态初始化区 p1 (char *)malloc(10); //堆区 strcpyp1,123456); //123456放在常量区 } 所以堆和栈的区别 stack的空间由操作系统自动分配/释放heap上的空间手动分配/释放。 stack的空间有限heap是很大的自由存储区。 程序在编译期和函数分配内存都是在栈上进行且程序运行中函数调用时参数的传递也是在栈上进行。