• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 筆試中數組越界問題

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

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲香蕉伊综合在人在线观看 | 一本色道久久88亚洲精品综合 | 亚洲欧美在线中文字幕不卡 | 日本欧美国产免费专区一本 | 中文字幕婷婷久久 | 中文亚洲无线码欧美 |

            筆試中數組越界問題

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

            筆試中數組越界問題

              #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 段地址錯誤