全局变量被修改的bug与原因

Posted 我要出家当道士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全局变量被修改的bug与原因相关的知识,希望对你有一定的参考价值。

目录

1、现象

 2、原因


1、现象

在一个 C 文件中连续定义了两个很大的全局变量

byte buff[8192];
byte task[256];

在程序运行过程中,每次需要在 buff 中拼接输出数据,并根据 task 判断任务状态。在程序运行过程中发现,task数组中的数据会无故的改变,数值随机,而且出现的位置固定。

2、原因

        后发现是因为buff越界赋值导致,buff 与 task 数组声明位置邻近,可能物理内存上的位置也邻近,当 buff 越界时污染了 task原有位置的值。

以上是关于全局变量被修改的bug与原因的主要内容,如果未能解决你的问题,请参考以下文章

写了个全局变量的bug,被同事们打脸!!!

lua的模块与包

关于JS 函数里 修改 全局变量 的问题

第9课 const和volatile分析

TLSAlloc()

Python中全局变量的引用与修改之格式影响