关于刷题时使用数组的小注意事项

💯 博客内容:关于刷题时使用数组的小技巧

😀 作  者:陈大大陈

🚀 个人简介:一个正在努力学技术的准前端,专注基础和实战分享 ,欢迎私信!

💖 欢迎大家:这里是CSDN,我总结知识和写笔记的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

最近写题时,发现了一直遗漏的一个知识点。

如图,将数组定义在全局,就会输出正确答案。

但是,要是定义局部数组,就会打印出随机值。

报错显示,栈溢出。

这是因为,局部数组和全局数组的存储位置不一样。

全局数组是存储在内存中的静态区,而局部变量是存储在栈区。

对于c语言,一个静态数组能有多大,取决于剩余内存的空间,也就是它所在区的大小;

在Windows下,栈的大小为2M,也就是1024*1024*2 = 2097152个字节。而一个int类型的变量则占2个或4个字节。所有我们在程序中声明局部变量时(在栈区),最好不好超过int[200000]的内存变量。

总之,当程序需要声明一个超过十万级的变量时,最好放在main函数外面,作为全局变量去使用。不然的话,可能像我上面那样发生栈溢出问题,还以为是代码的思路有问题。

相关推荐
柒儿吖11 分钟前
DDlog 高性能异步日志库在 OpenHarmony 的 lycium 适配与分步测试
c++·c#·openharmony
民国二十三画生14 分钟前
C++(兼容 C 语言) 的标准输入语法,用来读取一行文本
c语言·开发语言·c++
爱思德学术15 分钟前
中国计算机学会(CCF)推荐学术会议-B(计算机体系结构/并行与分布计算/存储系统):SPAA 2026
算法
柒儿吖17 分钟前
基于 lycium 在 OpenHarmony 上交叉编译 utfcpp 完整实践
c++·c#·harmonyos
sTone8737517 分钟前
std::function/模板/裸函数指针选型指南
c++
Codiggerworld27 分钟前
从字节码到JVM:深入理解Java的“一次编写,到处运行”魔法
java·开发语言·jvm
33 分钟前
2.12矩阵问题,发牌,数字金字塔
线性代数·算法·矩阵
无聊的小坏坏39 分钟前
一文讲通:二分查找的边界处理
数据结构·c++·算法
m0_5287490039 分钟前
C语言错误处理宏两个比较重要的
java·linux·算法
禾叙_42 分钟前
【netty】Channel
开发语言·javascript·ecmascript