内存分配方式及变量存在地点

xiaoxiao2021-02-28  25

1.用户态分为:BSS,数据段,代码段,堆,栈。

BSS:用来存放未初始化的全局变量或静态变量。

数据段:初始化的全局变量。

代码段:代码、常量。

堆:malloc

栈:局部变量,形参。

2.定义需要分配空间,声明不需要。

3.小端:低字节存放在低地址,高字节存放在高地址。

   大端:低字节存放在高地址,高字节存放在低地址。

4.如果头文件有math.h编译时要加上-lm

5.结构体的长度是最长成员结构体的倍数。

每个成员的起始地址都是该成员类型所占长度的倍数。

常见内存分配方式

1.从静态存储区域分配。内存在程序编译的时候已经分配好,整个程序执行时内存都存在。例如全局变量,静态变量。 2.从栈上创建。在执行函数时,函数内局部变量存储单元都可以在栈上创建,函数结束之后这些存储单元自动被释放。 3.从堆上分配,即动态内存分配,由人使用malloc或者new申请分配多少的内存,并自己使用free或者delete释放内存,内存有义务释放,否则会出现内存泄漏。

转载请注明原文地址: https://www.6miu.com/read-1985233.html

最新回复(0)