[問題] 三重指標取值後再做加法出現奇怪現象
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
UBUNTU下GCC
問題(Question):
程式運算時,依據使用者輸入情形的不同,需要載入不同大小的三維陣列。
因為我想不到其他方法,所以我先設一個三維指標
int ***OLS;
其中一種情形(A=3)是要把n3這個三維陣列掛進OLS
我用OLS = &n3;
然後問題在於
wht = OLS[ rmd%(A-1) *A*A + p * A + sta] + rmd * A ;
A=3時,OLS裡面的數字只可能是0,1,2
rmd是迴圈變數,若是0沒問題,但是若超過1時
wht得出來的結果竟然會變成12,14,16之類的!(不論A是什麼都錯)
但是如果寫成兩行
wht = OLS[ rmd%(A-1) *A*A + p*A + sta] ;
wht+= rmd*A;
就可以出現正確的結果wht=3,4,5 (A若是其他情形wht的值會正確)
這是怎麼回事??
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 14.100.134.188
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1421693334.A.C7D.html
※ 編輯: gary8520 (14.100.134.188), 01/20/2015 02:51:45
※ 編輯: gary8520 (14.100.134.188), 01/20/2015 02:52:31
推
01/20 03:04, , 1F
01/20 03:04, 1F
→
01/20 03:19, , 2F
01/20 03:19, 2F
→
01/20 03:20, , 3F
01/20 03:20, 3F
→
01/20 03:21, , 4F
01/20 03:21, 4F
推
01/20 21:10, , 5F
01/20 21:10, 5F
→
01/22 01:56, , 6F
01/22 01:56, 6F
→
01/22 01:57, , 7F
01/22 01:57, 7F
推
01/22 14:33, , 8F
01/22 14:33, 8F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章