zoukankan      html  css  js  c++  java
  • C数组下标越界

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

    事情经过

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

    调试过程

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

    问题原因

    数组下标越界

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

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

    经验教训

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

    if(GratingIndex < GRATING_AMOUNT)
        GratingPulseWidth[GratingIndex] = PuseWidth;
    
  • 相关阅读:
    Logstash
    收藏学习Linux好用的网站
    Elasticsearch
    Elasticsearch-head
    Kibana
    Metricbeat
    filebeat
    elelelleeleELK
    MySQL对库的操作
    【Django】URL控制器
  • 原文地址:https://www.cnblogs.com/WeyneChen/p/5957931.html
Copyright © 2011-2022 走看看