总结C/C++中内存区域划分
目录
1.C/C++程序内存分配主要的几个区域:
2.内存分布图
1.C/C++程序内存分配主要的几个区域:
1、栈区 2、堆区 3、数据段(静态区) 4.代码段
2.内存分布图
如图:
static修饰静态变量成员——放在静态区
int globalVar 是全局变量——放在静态区
全局变量&&静态变量 放在静态区
malloc calloc等动态内存分布存放在堆区
动态内存分布存放在堆区
其余存放在栈区
注意:在现代计算机程序中,地址并不直接存储在栈区或堆区。地址实际上是存储在CPU的寄存器或者内存中,然后通过指针来引用内存的位置
所以变量ptr1 ptr2 ptr3 都是在栈区的,而它们存储的是在堆区所开辟空间的地址,这个地址既不在堆区也不在栈区,它只是个地址