[問題] 陣列大小

看板C_and_CPP (C/C++)作者 (還是朋友?)時間14年前 (2011/09/21 16:54), 編輯推噓1(1010)
留言11則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) dev++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): int x[5] ;//不是指x[0~4] ? 程式碼(Code):(請善用置底文網頁, 記得排版) int x[5]; for(int i=0;i<7;i++) { x[i]=i; cout<<x[i]; } 我只是單純想問...為何這樣能編譯過 還能跑出結果? 因為這樣會有錯覺是x[0~5] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.126.194.175

09/21 16:58, , 1F
侵門踏戶了阿
09/21 16:58, 1F

09/21 16:59, , 2F
compiler表示:
09/21 16:59, 2F

09/21 17:00, , 3F
未定義行為吧 所以compiler可以do everything it want
09/21 17:00, 3F

09/21 17:08, , 4F
你跟房東租了五間房,但你去開了第六間,房東是不管的
09/21 17:08, 4F

09/21 17:09, , 5F
不過第六間房可能是別人的儲藏室,甚至是另外一間公司的
09/21 17:09, 5F

09/21 17:10, , 6F
你可能會把別人的資料蓋掉、或者發生違規存取
09/21 17:10, 6F

09/21 17:15, , 7F
總之這種事情是寫程式的人自己要負責的,千萬小心
09/21 17:15, 7F

09/21 17:15, , 8F
被問書可以過為何不能用 所以我在想要怎樣解釋比較好
09/21 17:15, 8F

09/21 17:16, , 9F
就是上面講的,你可能蓋掉其他變數的值,而根本沒發現
09/21 17:16, 9F

09/21 17:26, , 10F
了解 謝謝j大的解釋
09/21 17:26, 10F

09/21 17:27, , 11F
謝謝j大
09/21 17:27, 11F
文章代碼(AID): #1EUQOzPg (C_and_CPP)
文章代碼(AID): #1EUQOzPg (C_and_CPP)