c++内存模型

堆区,栈区,静态存储区,常量存储区,代码区

new/malloc申请的内存位于堆区,new还可以申请栈区的内存空间,所以new申请的叫做自由存储区
全局常量:常量存储区
局部常量:栈
全局静态变量:静态存储区
局部静态变量:静态存储区
普通全局变量:静态存储区
普通局部变量:栈
函数参数:栈
虚函数表:静态存储区(每一个实例化的类对象所拥有的虚函数表指针指向类的虚函数表,是属于类对象的,存在于堆上或者栈上)
全局常量指针(const char* p = "1234"; const char p[] = "1234";)可以看作一个普通全局变量,毕竟*p不能变,p却可以变:静态存储区
函数指针(实际上是一个常量指针):常量存储区
常量数组:常量存储区

原文地址:https://www.cnblogs.com/sunshine-free/p/13995912.html