C语言程序需要载入内存才可以运行,其不同的数据保存在不同的区域。所使用的内存可以分成两类:一类是静态存储区,另一类是动态存储区。 C语言程序的存储区如下图所示: 1、静态存储区 静态存储区分为三类:只读数据区(RO Data)、已初始化读写数据区(RW Data)、未初始化读写读写数据区(BSS)。这三类存储区都是在...
一. 在c中分为这几个存储区:栈(stack),堆(heap),代码段(text),数据段(data),bss 段,常量存储区, 1.栈(stack):由编译器自动分配释放 自动分配,自动回收:栈区里面存放的是局部变量;在定义局部变量的时候,系统在栈区自动分配内存,在结束时,自动回收内存; 脏内存:栈区每次使用之前需要对栈区进行初始化;对于...
char *p2; //栈 char *p3 = "123456"; //123456\0在常量区,p3在栈上。 static int c = 0; //全局(静态)初始化区 p1 = (char *)malloc(10); p2 = (char *)malloc(20); //分配得来得10和20字节的区域就在堆区。 strcpy(p1, "123456"); //123456\0放在常量区,编译器可能会将它与p3所指...
C语言程序需要载入内存才可以运行,其不同的数据保存在不同的区域。所使用的内存可以分成两类:一类是静态存储区,另一类是动态存储区。 C语言程序的存储区如下图所示: 1、静态存储区 静态存储区分为三类:只读数据区(RO Data)、已初始化读写数据区(RW Data)、未初始化读写读写数据区(BSS)。这三类存储区都是在...
五大存储区(常量区 代码区 栈区 静态区 堆区)1. 常量区数值常量、字符常量、字符串常量、符号常量 2. 代码区代码的2进制指令 3. 栈区auto形参 局部变量:函数作用域或者语句块作用域内定义的变量 全局变量:文件…
程序代码区:存放程序的二进制代码,内存由系统管理 二、可执行程序程序三段-Text段,Date段,Bss段 auto变量:函数的局部变量,如果没有声明为static,函数中定义的局部变量全部为auto类型,auto变量包括未加static声明的局部变量和函数的形参。在函数调用时系统会给他们分配存储空间,在函数调用结束后会自动释放这些空间。属于...
从图中可以看出,C程序内存结构由程序代码区、常量区、全局数据区、堆区和栈区构成,内存地址由低到高。程序代码区存储C程序的二进制代码,程序从代码区的第1条指令开始执行。常量区存储程序中定义的常量数据。全局数据区存储程序中定义的全局变量和静态变量。堆区为程序在运行过程中动态分配的内存,申请的内存由程序...
|全局区 全局区(Global Area):全局区也称为静态区,用于存储全局变量和静态变量。全局区在程序启动时分配,在程序结束时释放。全局变量和静态变量的生命周期与程序的运行周期相同。全局区由.bss段 和 .data段组成: .bss段存储未初始化的全局变量和静态变量。在程序执行之前,编译器会将.bss段中的变量初始化为0或者...
程序运行期间,常量区的内容不可以被修改。 5. 代码区 程序执行代码存放在代码区,其值不能修改(若修改则会出现错误)。 字符串常量和define定义的常量也有可能存放在代码区。 二、STM32存储器分配 1. 随机存储器—RAM RAM是与CPU直接交换数据的内部存储器,也叫主存(内存)。