開發平台(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的值會正確)
這是怎麼回事??