- 个人主页:北·海
- 🎐CSDN新晋作者
- 🎉欢迎 👍点赞✍评论⭐收藏
- ✨收录专栏:C/C++
- 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗
- 错误1 当数组的内存占用较大时,会引发异常
#include <iostream>
using namespace std;
int main() {
char buff[2000000];
cout << (int)buff[sizeof(buff) - 1] << endl;
- 错误 2
- 当调用次数较小的时候,栈内存还没有满,可以输出,该地址相减除以1024等于100,就是每调用一次函数,分配的内存数,
- 当调用函数次数较大时候,栈内存爆掉了,就会引发异常
- 当n=20时候
- 内联函数inline:
- 可以解决该函数调用时间上的问题,可以缩短调用时间
- 但是会将主调函数编译后的代码块变得十分 "臃肿"
- inline定义的函数,在编译时,会将该函数的函数体直接插入到调用处
- 就相当于内联函数的函数体在调用出重新写了一遍
总结:
- 栈的内存默认为2兆,内存可以修改
- 站内存储的是非new或molloc出来的变量,没调用一次函数,就会在栈内开辟一段空间,大小为该函数内所有变量的内存和,当内存过大时,栈爆掉就会引发异常
- 程序是从高内存向低内存进行存储的,两个相邻空间的内存地址相减就能得到
- 每分配一块空间,这块内存空间就叫做 " 栈帧 "