1、堆(heap) GB/TB级别
2、静态变量 全局变量 既不在堆上又不在栈上
3、hz::string_pro s1 = "hihi";
s1本身在栈上,管理内存在堆上
4、std::cout<<sizeof(hz::string_pro)<<" "<<sizeof(s1)<<std::endl;
string_pro 两个int类型的成员变量,所以大小为8;虽然s1对象被初始化为“hihi”理论上应该输出8+4=12,但是sizeof()只计算栈上内存,不计算堆上内存。
5、在编译阶段就可以确定函数占用内存的大小,栈上操作仅仅相当于移动指针,但是堆上操作比较慢,需要向操作系统申请内存。(可能有百倍的差距)
6、动态分配内存:指定一个大小,分配指定大小的内存