2

2D 配列の通常の使用法とは対照的に、5 つの異なる 2D 配列があります。

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

1 番目と 2 番目の要素は問題なく、次の 2 つはガベージであることがわかります。次に、次の 2 つは問題なく、次の 2 つはゴミなどです...

私は何を間違っていますか?「for」ループを使用して、A、B、C、D、および E の値をそれぞれ出力するにはどうすればよいですか?

4

0 に答える 0