2

与二维数组的正常使用相比,我有 5 个不同的二维数组。

int A[1][2] = {2, 5};
int B[1][2] = {6, 1};
int C[1][2] = {4, 8};
int D[1][2] = {3, 6};
int E[1][2] = {9, 7};

然后我通过以下方式声明了指向这 5 个数组的指针数组:

typedef int (*PointerToArrays)[2];
static PointerToArrays arr[POPULATION_SIZE] = {A, B, C, D, E};

现在我想通过以下方法打印这些数组的元素:

for(int i=0; i<10; i++) {
    for(int j=0; j<2; j++) {
        cout << (*arr)[i][j] <<endl;
    }
}

但我得到以下结果:

2
5
4197162
0
6
1
4197245
0
4
8

你可以看到第一个和第二个元素都很好,接下来的两个是垃圾。然后接下来的两个很好,接下来的两个是垃圾等等......

我究竟做错了什么?如何使用“for”循环分别打印出 A、B、C、D 和 E 的值?

4

0 回答 0