看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2010 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 關於陣列的位址為什麼會有重複 我宣告a[2][3] b[3][2] c[2][2] 這3個陣列 結果我發現a[2][3]這個數值會變的和c[1][1]一樣 我去查a[2][3]的位址 發現和c[1][1]變的一樣 不知道為什麼會發生這種情況 結果導致下面算出來的值都錯誤了 有人知道怎麼解決這種情況嗎 我這個是要計算2個矩陣相乘 a X b = c 我寫成這樣 int x,y,k; for(x=1;x<=2;x++) { for(y=1;y<=2;y++) { c[x][y]=0; for(k=1;k<=3;k++) { c[x][y]=c[x][y]+(*(*(a+x)+k))*(*(*(b+k)+y)); } } } 結果跑出來的結果是錯的 所以我去查每一個值 發現到開始跑x=2的那個迴圈的時候 a[2][3]就會變成和c[1][1]一樣 所以後面的值都錯了 不知道到底是哪裡出問題 請大家幫忙看一下 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.237.62
ericinttu:從0開始放東西 11/17 23:37
tropical72:#1EYjkxHe 11/17 23:48
KTFGU:假設宣告a[3] 只能用a[0~2] 不能用a[3]唷 11/17 23:50
hohoww:樓上正解阿阿阿阿阿阿阿 11/18 11:10
zheng2010:那假如宣告a[0]的話 可以用a[0]嗎? 11/18 11:13
diabloevagto:宣告的那個是代表說這個陣列裡面有多少元素 11/18 11:21
diabloevagto:0的話裡面0個,那宣告有意義嗎= = 11/18 11:22
bernachom:XD 11/18 11:46
tropical72:嗯,據loveme00835 + 規格書表示,宣告不能放零。 11/18 14:17
xatier:印象中C99可以讓某些 struct hack 可以宣告 a[0] ? 11/18 17:01
tropical72:樓上似乎記錯了 #1DgV76tB 11/18 21:01
tropical72:struct hack 那招應叫 flex array. #1DhhMrOO 11/18 21:05
wxtab019:恩...的確是我沒注意到... 11/19 10:22
xatier:感謝 T大 :) 11/21 15:20