[問題] 關於陣列的簡單問題

看板C_and_CPP (C/C++)作者 (雞)時間16年前 (2009/03/18 21:22), 編輯推噓3(307)
留言10則, 5人參與, 最新討論串1/1
#include<iostream> using namespace std; int main(void) { int a[11]={1,2,3,4,5,6,7,8,9,10}; a[11]=-1; for(int i=0;a[i]!=-1;i++)cout<<a[i]<<endl; return 0; } 在下覺得很奇怪 不是應該只會有a[0]~a[10]的陣列嗎? 為什麼我存-1在a[11]的時候編譯還是會過 而且如果在a[10]裡面存入-1的話 程式反而會跑到掛掉 a[11]存入-1反而可以正確的印出陣列裡面的東西 可以的話順便告訴我一下有沒有比較方便的方法可以 直接印出一個型態為int的陣列... 那個迴圈的條件應該要怎麼寫他才會停呢? 我只知道如果型態為char的話是要寫當a[i]!='\0' 想請問一下int有沒有比較常用的條件不用自己手東放東西進去的 懇請哪位大大可以教我一下 感謝 忘記說我用的編譯器是DevC++... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.246.17 ※ 編輯: asdofe 來自: 140.113.246.17 (03/18 21:24)

03/18 21:34, , 1F
超過陣列大小會不會當要看運氣?
03/18 21:34, 1F

03/18 21:59, , 2F
沒有那種方法。
03/18 21:59, 2F

03/18 22:00, , 3F
簡單的方法是改用vector,不過請先搞清楚陣列再談
03/18 22:00, 3F

03/18 22:35, , 4F
感謝樓上兩位回答 一樓好像是隔壁班的耶XD
03/18 22:35, 4F

03/18 22:40, , 5F
真的是陣列的話可以用sizeof(a),轉成指標後免談
03/18 22:40, 5F

03/18 22:49, , 6F
那個陣列不只10byte 會有padding 至於多少看編譯器
03/18 22:49, 6F

03/18 22:59, , 7F
放a[10]怎麼可能掛掉 = =
03/18 22:59, 7F

03/19 01:43, , 8F
好吧掛掉可能是我亂打了什麼= =" 原來是會有緩衝的啊..
03/19 01:43, 8F

03/19 01:43, , 9F
感謝樓上stone大大跟leg大大...我了解了...
03/19 01:43, 9F

03/19 09:46, , 10F
我那樣寫有點不清楚 應該是那陣列後面有padding
03/19 09:46, 10F
文章代碼(AID): #19mFMN6V (C_and_CPP)
文章代碼(AID): #19mFMN6V (C_and_CPP)