C語言下標越界問題,c語言問題,二維陣列的下標越界怎麼看?

時間 2021-07-21 03:31:34

1樓:匿名使用者

這個跟系統有關係。

如果陣列越界是否破壞了原來的函式呼叫棧,或者訪問到了不可訪問的地址,或者寫了只有讀許可權的地址,那肯定會出錯了。

但是如果你的陣列的越界只是訪問到了原本就沒有被分配的記憶體,那麼就不會出錯,但是不能保證這麼下去一直不會錯。

2樓:淦海瑤

越界有危險,但是沒有辦法判斷,

3樓:於夜漆雕騫騫

第二個迴圈條件寫錯了吧

迴圈裡i只要小於等於6就會死迴圈了

比如第一次i為零時就會一直讓j自增跳不出迴圈自然了j大過陣列下標最大值時就越界了

c語言問題,二維陣列的下標越界怎麼看?

4樓:邰懷蕾範掣

假設bai這個陣列是連du續記憶體的話,第二個zhi下標越界第一個不越界dao,專那這個地址還是屬有可能落在這個二維陣列的記憶體範圍內的,但是你第一維最後元素的第二維下標越界試試?

那就跑出這個陣列的記憶體範圍了,誰這麼明確告訴你可以越界了?

inta[5][5];

a[5][6]=0;

這麼寫或許編譯不報錯,但是你修改了莫名其妙地址上的資料,要麼崩潰要麼出錯...這樣是不可取的

5樓:匿名使用者

定義的時候,數字表示的是數量。

而下標是從0開始的,所以最大下標是總數量減1。

比如int a[10]表示10個數的陣列,它們的下標就是0到9總共10個。

c語言 二維陣列下標越界的一道題目

6樓:匿名使用者

因為數bai組的第二維維度是3,而a[-1][5]的第du二維超zhi過了,最大能取到的2.所以其dao實相當於a[0][2] 所以是3

舉個容內易理解的例子容:

a[3][3]

*a + 1其實是 a[0][1]

*a + 4其實是 a[1][1]

c語言問題,C語言問題。

考驕 用指標將兩個字串連結接起來,前一個while迴圈,確定s1字串走完,第二個while開始將s1的逐個字元複製給s1走完,也就是末尾,這樣就可以把字串都匯入到s1中 最後一個空寫的應該寫return s1 長魚修韋 很久沒碰這東西了。我來解釋下 第一個while的迴圈是為了讓指標指向第一個字串的...

C語言問題,c語言問題?

自我程式設計 列印輸出乙個ok。因為前面迴圈for語句有分號結束。所以後面的printf語句不在迴圈內,不受迴圈語句影響。 理佑平鄲胭 結果是22 7 7 8 22 你可以將 i i i i是先 1再計算,還有這裡的運算順序是從左到右,所以應該是7 7 i 14 8 22 前兩個相加時,i先加1,加...

c語言問題,C語言問題?

這個問題說難不難,但理解可能有點玄乎而已,但是打個比方來理解就太容易掌握啦!就是說scanf的認定讀取,比如你單純的scanf c ch 那麼實際上已經認定了第乙個字元出現就把它賦予給ch,如果是你的scanf c 前面多了乙個空格,所以就認定了出現第乙個空格後的字元賦予給ch,如果寫成這樣 sca...