1.用户态分为:BSS,数据段,代码段,堆,栈。
BSS:用来存放未初始化的全局变量或静态变量。
数据段:初始化的全局变量。
代码段:代码、常量。
堆:malloc
栈:局部变量,形参。
2.定义需要分配空间,声明不需要。
3.小端:低字节存放在低地址,高字节存放在高地址。
大端:低字节存放在高地址,高字节存放在低地址。
4.如果头文件有math.h编译时要加上-lm
5.结构体的长度是最长成员结构体的倍数。
每个成员的起始地址都是该成员类型所占长度的倍数。
常见内存分配方式
1.从静态存储区域分配。内存在程序编译的时候已经分配好,整个程序执行时内存都存在。例如全局变量,静态变量。 2.从栈上创建。在执行函数时,函数内局部变量存储单元都可以在栈上创建,函数结束之后这些存储单元自动被释放。 3.从堆上分配,即动态内存分配,由人使用malloc或者new申请分配多少的内存,并自己使用free或者delete释放内存,内存有义务释放,否则会出现内存泄漏。