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

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

😀 作  者:陈大大陈

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

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

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

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

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

报错显示,栈溢出。

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

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

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

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

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

相关推荐
奔跑的web.几秒前
TypeScript类型系统核心速通:从基础到常用复合类型包装类
开发语言·前端·javascript·typescript·vue
2301_764441332 分钟前
基于HVNS算法和分类装载策略的仓储系统仿真平台
人工智能·算法·分类
小白学大数据4 分钟前
百科词条结构化抓取:Java 正则表达式与 XPath 解析对比
java·开发语言·爬虫·正则表达式
AI科技星6 分钟前
统一场论变化的引力场产生电磁场推导与物理诠释
服务器·人工智能·科技·线性代数·算法·重构·生活
myloveasuka7 分钟前
int类型的取值范围(为什么负数比正数表示的范围多一位)
c语言·c++
杰克逊的日记8 分钟前
规控算法(规划 + 控制算法)
大数据·算法·云计算·it
玉树临风ives8 分钟前
atcoder ABC439 题解
c++·算法
程序员zgh12 分钟前
类AI技巧 —— 文字描述+draw.io 自动生成图表
c语言·c++·ai作画·流程图·ai编程·甘特图·draw.io
这周也會开心15 分钟前
JVM-垃圾回收算法
jvm·算法
ss27316 分钟前
volatile的可见性、安全发布的秘密与ThreadLocal原理
java·开发语言