内存空间

在运行环境上,通常线程可用的栈空间比堆空间要远小得多:栈空间一般只有几M,甚至小于1M,而堆空间往往高达几个G。因此,在程序中存储大块的数据时,必须要注意不能造成栈空间不足。通常当函数内的局部变量或函数形参占用空间超过1kB时,就要考虑是否该分配在堆上了

栈:

1. 函数内声明的局部变量

2. 按值传递的函数参数

3. std::array,作为局部变量时是存放在栈上的

 

堆:

1. new或者malloc方式申请的对象或内存

2. std::vector,实际数据都会被保存在堆上,栈中只保存了指针

3. std::string,对数据的管理方式与std::vector类似

posted on 2022-04-06 11:14  蜀山菜鸟  阅读(268)  评论(0)    收藏  举报