小学校园网站建设方案工作职责,云浮新兴哪有做网站的,网站建设优化文档,网站维护公司不同的compiler在编译的过程中对于存储的分配可能略有不同#xff0c;但基本结构大致相同。 大体上可分为三段#xff1a;Text段、Data段和BSS段。 text段用于存放代码#xff0c;通常情况下在内存中被映射为只读#xff0c;但data和bss是可写的。 数据存放通常分成如下几个…不同的compiler在编译的过程中对于存储的分配可能略有不同但基本结构大致相同。 大体上可分为三段Text段、Data段和BSS段。 text段用于存放代码通常情况下在内存中被映射为只读但data和bss是可写的。 数据存放通常分成如下几个部分 1、栈由编译器自动分配保存函数的局部变量和参数。 2、堆一般由程序员动态分配释放 若程序员不释放程序结束时可能由OS回收 例如malloc。它不同与数据结构中的堆它更类似于链表。 3、全局区全局变量和静态变量的存储是放在一块的初始化的全局变量和静态变量在一块区域。 4、文字常量区这一区域很多情况下在代码区因为代码段和常量一样是只读的。 5、程序代码区存放函数体的二进制代码。 6、bss段:定义而没有赋初值的全局变量和静态变量,放在这个区域通常只是记录变量名和大小相当于一个占位符。 参考别人的一段示例代码 1 #includestdio.h2 #includestdlib.h3 #includeiostream4 #includestring.h5 using namespace std;6 7 static int a1;//全局初始化区 8 int b2;//全局初始化区 9 char *p;//全局未初始化区
10 char *p2;//全局未初始化区BSS段
11 int *p3;//全局未初始化区 BSS段
12 int *p4;//全局未初始化区 BSS段
13 char *p5{555555555};//全局初始化区
14
15 int main(){
16 static int c3;
17 int d4;//内存栈
18 int e7;//内存栈
19
20 char *p6{555555555};
21 p(char*)malloc(sizeof(char)*10);//内存堆
22 p2(char*)malloc(sizeof(char)*10);//内存堆
23 p3(int*)malloc(sizeof(int));//内存堆
24 p4(int*)malloc(sizeof(int)*10);//内存堆
25 for(int i0;i9;i)p4[i]0x1;
26
27
28 *p30x123;
29 strcpy(p,123456789);//文字常量区
30 strcpy(p2,987654321);
31 strcpy(p2,123456789);
32 } View Code 转载于:https://www.cnblogs.com/zhazhalovecoding/p/6010154.html