四、全局区/静态存储区 这里主要存放 全局变量和 静态变量、生命周期覆盖整个程序、直到程序结束,生命周期结束、不过这里还细分了是否初始化的全局变量和静态变量,但是大体是在一个区域内存放 五、常量区 六、代码区 存放代码、不允许被修改,也就是我们所写的函数,是存放在这里的 代码区中的东西是随整个程序一起的...
默认分配的ROM区域是0x8000000开始,大小是0x20000的一片区域,那么这篇区域是只读区域,不可修改,也就是存放的代码区和常量区。 默认分配的RAM区域是0x20000000开始,大小是0x4000的一片区域,这篇区域是可读写区域,存放的是静态区、栈区和堆区。该芯片的内部分区如下图所示: 基于STM32内核的代码测试 代码区 代码区...
BSS段用于存放未初始化的全局变量和静态变量。因为这些变量没有初值,所以不需要占用实际的磁盘空间,它们...
int a = 0;//全局初始化区 char *p1;//全局未初始化区 int main() { int b;//栈 char s[] = "abc";//栈 char *p2;//栈 char *p3 = "123456";//123456在常量区,p3在栈上 static int c = 0;//全局(静态)初始化区 //分配得来得10和20字节的区域就在堆区 p1 = (char *)malloc(10)...
也就是说:栈存的值是肯定在编译期就确定大小的,静态的,生命周期固定的;而堆上储存的数据一般是...
这是固定的,根据变量类型判断就行:全局变量和静态变量放在全局区 局部变量放在栈区 动态申请的内存在堆区 register变量在寄存器 字符串常量在文字常量区
iOS内存管理(栈、堆、全局静态区、文字常量区、代码区) 最近从0开始学iOS,借鉴前人笔记文章,整理思维导图一张,希望能给大家带来帮助,也能让我自己有所提升。 勘误:根据评论区@山山山山石 老哥的提醒,Block Started by Symbol —— BSS。所以图中BBS段应为BSS段。抱歉。
系统一般内存主要分为:代码区、常量区、静态区(全局区)、堆区、栈区这几个区域。 如下图 代码区:存放程序的代码,即CPU执行的机器指令,并且是只读的。存放在最底层。 常量区:存放常量(程序在运行的期间不能够被改变的量,例如: 10,字符串常量”aaaa”, 数组的名字等) 静态区(全局区):静态变量和全局变量的...
1.栈 存储局部变量,包括:函数内部定义的变量(未加static),函数的形式参数,函数的返回值,函数调用时的现场保护和返回地址,const修饰的局部常量。 2.堆 malloc等函数动态分配空间的变量。分配以后必须使用free释放,避免堆泄露。 3.全局区/静态区 (1).bss段 ...
代码区:存放程序的代码,即CPU执行的机器指令,并且是只读的。 常量区:存放常量(程序在运行的期间不能够被改变的量,例如: 10,字符串常量”abcde”, 数组的名字等) 静态区(全局区):静态变量和全局变量的存储区域是一起的,一旦静态区的内存被分配, 静态区的内存直到程序全部结束之后才会被释放 ...