<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            筆試中數組越界問題

            時間: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

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看