我知道,很多人被告知它,但我无法找到我需要的明确参考。通过指针访问多维数组
我需要一个结构成员,它将指向一个二维数组。数组大小不固定,结构的每个实例都将指向具有不同大小的数组。
我想到了以下方法:
struct towDimByPtr
{
int NumRow;
int NumCol;
int* ptr2TwoDim;
};
然后,我将有全局:
int arr1[30][90];
int arr2[20][10];
towDimByPtr towDim1;
towDimByPtr towDim2;
在初始化我会做到:
towDim1.ptr2TwoDim = arr1;
towDim1.NumRow = 30;
towDim1.NumCol = 90;
towDim2.ptr2TwoDim = arr2;
towDim2.NumRow = 20;
towDim2.NumCol = 10;
最后访问的时我将使用的元素:
towDim1[curr_row*NumCol + curr_col]
我的问题:这会一直工作吗?
C和C++是[行 - 主要顺序](http://en.wikipedia.org/wiki/Row_major)语言,所以只要你坚持,它应该工作。但我不会推荐使用它,因为它很混乱。 –
@JoachimPileborg,谢谢。你能否提供一个参考? – Subway