• C数组下标越界


    之前总听说C语言的各种毛病,今天算是遇到一个:数组下标越界

    事情经过

    两段完成不相干的代码,一段是测温度的,一段是测转速的。两段代码单独运行都没有问题,但是若运行测转速的代码,测温度的数据就会发生错误。

    调试过程

    一步查看,发现运行测转速之后,测温度的代码中的一个变量和一个数据的值就会发生诡异的错误

    问题原因

    数组下标越界

    这个越界非常不明显,代码如下:
    GratingPulseWidth[GratingIndex] = PuseWidth;
    

    其中GratingIndex在其他的代码中有条件归零。万万没想到的是,这个归零条件不是总会触发,所以就发生越界了。
    事实上这份程序运行很久都没出过问题,可能因为越界不一定会造成影响吧,正是因为这样才可怕!!!

    经验教训

    对数组进行操作,一定要进行越界判断!!!

    if(GratingIndex < GRATING_AMOUNT)
        GratingPulseWidth[GratingIndex] = PuseWidth;
    
  • 相关阅读:
    fastjson-alibaba
    ubuntu 入门
    资料文档
    asp.net mvc View视图相关
    视频
    js第三方
    工具类网址
    [转]初学者的编程自学指南
    seajs的使用--主要了解模块化
    其它
  • 原文地址:https://www.cnblogs.com/WeyneChen/p/5957931.html
Copyright © 2020-2023  润新知