开发平台(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的值会正确)
这是怎么回事??