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

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

😀 作  者:陈大大陈

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

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

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

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

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

报错显示,栈溢出。

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

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

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

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

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

相关推荐
m0_672656545 分钟前
JavaScript性能优化实战技术文章大纲
开发语言·javascript·性能优化
yugi9878385 分钟前
基于Takens嵌入定理和多种优化算法的混沌序列相空间重构MATLAB实现
算法·matlab·重构
Yang-Never6 分钟前
Android 内存泄漏 -> LiveData如何解决ViewMode和Activity/Fragment之间的内存泄漏
android·java·开发语言·kotlin·android studio
Smartdaili China7 分钟前
如何在桌面和移动设备上修复YouTube错误400
开发语言·php·error·youtube·移动·住宅ip·错误400
Yuer202512 分钟前
为什么要用rust做算子执行引擎
人工智能·算法·数据挖掘·rust
持梦远方13 分钟前
持梦行文本编辑器(cmyfEdit):架构设计与十大核心功能实现详解
开发语言·数据结构·c++·算法·microsoft·visual studio
HeDongDong-16 分钟前
Kotlin 协程(Coroutines)详解
android·开发语言·kotlin
阿里嘎多学长16 分钟前
2025-12-29 GitHub 热点项目精选
开发语言·程序员·github·代码托管
鹿角片ljp18 分钟前
深入理解Java集合框架:核心接口与实现解析
java·开发语言·windows
小灰灰搞电子25 分钟前
C++ 文件操作详解
开发语言·c++·文件操作