内存分配方式主要分为两种:动态分配和静态分配。他们的区别主要是两个:1、时间不同,静态分配是发生在程序编译链接时,而动态分配是发生在程序调入和运行时。2、是分配的空间不同。
c/c++占用的内存主要分为几大块:
- 动态数据区
- 静态数据区
- 文字常量区
- 程序代码区
动态数据区分为栈和堆,栈有动态分配(释放由编译器执行)和静态分配(局部变量),堆只有动态分配(malloc等函数,程序员操作)。
静态数据区存放的是static变量和全局变量。
文字常量区存放常量字符串。
程序代码区存放函数体二进制代码。