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

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

😀 作  者:陈大大陈

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

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

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

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

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

报错显示,栈溢出。

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

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

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

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

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

相关推荐
千夕见夕1 分钟前
C 语言指针深度解析:从数组指针到指针函数的实战指南
c语言·c++·算法
Yuroo zhou1 小时前
无人机在复杂气流中,IMU 如何精准捕捉姿态变化以维持稳定?
单片机·嵌入式硬件·算法·机器人·无人机
Dream it possible!1 小时前
LeetCode 面试经典 150_数组/字符串_买卖股票的最佳时机(7_121_C++_简单)(贪心)
c++·leetcode·面试·贪心算法
xueyongfu1 小时前
PTX指令集基础以及warp级矩阵乘累加指令介绍
人工智能·线性代数·算法·矩阵
流星白龙1 小时前
【C++算法】89.多源BFS_01 矩阵
c++·算法·宽度优先
lly2024062 小时前
HTML 表单
开发语言
爱代码的小黄人3 小时前
利用劳斯判据分析右半平面极点数量的方法研究
算法·机器学习·平面
海上Bruce5 小时前
C primer plus (第六版)第九章 编程练习第8,9题
c语言
深海潜水员5 小时前
【Python】 切割图集的小脚本
开发语言·python
Yolo566Q5 小时前
R语言与作物模型(以DSSAT模型为例)融合应用高级实战技术
开发语言·经验分享·r语言