筆試中數組越界問題

    時間:2020-11-21 18:19:27 筆試題目 我要投稿

    筆試中數組越界問題

      下面這個程序執行后會有什么錯誤或者效果:

    筆試中數組越界問題

      #define MAX 255

      int main()

      {

      unsigned char A[MAX],i;

      for (i=0;i<=MAX;i++)

      A[i]=i;

      }

      解答:MAX=255,數組A的下標范圍為:0..MAX-1,這是其一,其二 當i循環到255時,循環內執行: A[255]=255;這句本身沒有問題,但是返回for (i=0;i<=MAX;i++)語句時,由于unsigned char的取值范圍在(0..255),i++以后i又為0了..無限循環下去.

      注:char類型為一個字節,取值范圍是[-128,127],unsigned char [0 ,255]

      拓展閱讀:

      語法錯誤不等于不能執行,能執行不等于結果正確....

      結論:

      越界是肯定的

      內存是很大的

      舉個例子吧:

      int main(...){

      int a =0;

      int b[3] = 0;

      b[3] = 1;

      }

      //結果有可能使a=1;

      //具體結果跟進程中棧排列有關

      越界雖然會影響其它內存位置的變量,但只能影響本進程空間的'內存,對其他程序沒有影響,除非你的越界已經延伸到了環境變量的位置

      unix/linux下可能的錯誤(其他的不知道):

      SIGBUS 總線錯誤

      SIGSEGV 段地址錯誤

    【筆試中數組越界問題】相關文章:

    《公民凱恩》中的視角越界08-19

    JavaScript中的索引數組、關聯數組和靜態數組、動態數組的分類講11-10

    PHP中如何創建和修改數組11-25

    幾個常見的軟件測試面試筆試中的問題12-09

    ASP筆試問題集11-27

    淺談javascript數組06-19

    中軟集團筆試題12-20

    關于PHP數組內存耗用太多問題的解決方法11-20

    JSON數組用法介紹11-10

    91久久大香伊蕉在人线_国产综合色产在线观看_欧美亚洲人成网站在线观看_亚洲第一无码精品立川理惠

      色妞AV永久一区二区国产AV开 | 亚洲中文字幕在线第二页 | 亚洲日韩每日在线观看 | 亚洲视屏一二三四区 | 五月天视频网站在线视频 | 亚洲国产人成自精在线尤物 |