打印
[技术问答]

单片机的数组越界与溢出

[复制链接]
楼主: belindagraham
手机看帖
扫描二维码
随时随地手机跟帖
41
这种现象能否在编译阶段消除

使用特权

评论回复
42
AdaMaYun| | 2024-3-12 15:00 | 只看该作者
youtome 发表于 2023-8-4 18:48
数组越界怎么解决?

做一些防错机制,对数组等存在风险的数据进行防护

使用特权

评论回复
43
芯路例程| | 2024-6-8 19:54 | 只看该作者
在数组的应用中,通常需要增加判断。

使用特权

评论回复
44
小小蚂蚁举千斤| | 2024-6-23 14:21 | 只看该作者
数组越界C语言数组是静态的,不能自动扩容,当下标小于零或大于等于数组长度时,就发生了越界(Out Of Bounds),访问到数组以外的内存

使用特权

评论回复
45
LLGTR| | 2024-8-2 13:15 | 只看该作者
如果没有报告错误,但是运行结果有问题怎么办

使用特权

评论回复
46
星闪动力| | 2024-9-7 20:14 | 只看该作者
当数组是常规数组时,无法确定数组是否超出边界。

使用特权

评论回复
47
jdqdan| | 2024-9-14 16:28 | 只看该作者
可以在数组的开头和结尾设置边界标志。当阵列访问跨越边界时,将触发该标志,以便可以检测到边界。

使用特权

评论回复
48
AuroraS| | 2024-9-16 13:26 | 只看该作者
超过数组的unlimit后,我们会在模拟中得到错误消息吗?

使用特权

评论回复
49
hmcu666| | 2024-10-6 06:59 | 只看该作者
您可以设置一个合理的标志,并在检测到溢出时开始设置

使用特权

评论回复
50
AutoMotor| | 2024-10-7 06:31 | 只看该作者
如果软件因为数组越界而失控,这个问题就很难调查了

使用特权

评论回复
51
光光雎鸠| | 2024-10-9 11:28 | 只看该作者
一些编译器或运行时库函数为数组访问提供边界检查。

使用特权

评论回复
52
IntelCore| | 2024-11-3 12:11 | 只看该作者
一些编译器或运行时库函数为数组访问提供了间隙检查。

使用特权

评论回复
53
belindagraham|  楼主 | 2024-11-7 20:28 | 只看该作者
在某些情况下,数组越界可能被恶意利用,导致安全漏洞。

使用特权

评论回复
54
wilhelmina2| | 2024-11-7 20:50 | 只看该作者
在单片机编程中,溢出通常指的是数值超出了变量或数据类型的存储范围。这可以发生在整数溢出、数组溢出(即数组越界导致的溢出)以及其他数据类型的溢出中。

使用特权

评论回复
55
macpherson| | 2024-11-7 21:38 | 只看该作者
在访问数组元素之前始终检查索引是否在有效范围内。

使用特权

评论回复
56
maqianqu| | 2024-11-8 09:04 | 只看该作者
数组溢出可能会覆盖相邻的内存空间,破坏其他变量或数据结构的内容。这可能会导致程序中其他部分的逻辑错误,甚至引发系统的不稳定和崩溃。

使用特权

评论回复
57
1988020566| | 2024-11-8 10:48 | 只看该作者
在某些情况下,溢出可能会触发硬件异常或中断,导致程序崩溃。

使用特权

评论回复
58
jimmhu| | 2024-11-8 12:30 | 只看该作者
使用断言(assert)来验证假设,如数组的大小。

使用特权

评论回复
59
ulystronglll| | 2024-11-8 14:20 | 只看该作者
在单片机编程中,这通常发生在C或C++等语言中,因为这些语言允许程序员直接操作内存地址。

使用特权

评论回复
60
minzisc| | 2024-11-8 16:05 | 只看该作者
在进行算术运算时,结果超出了变量的表示范围。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则