0

問題の概要を説明する小さなプログラムを作成しました。「ary」の値を画面に出力する必要があります。「ary」を直接使用しても問題ありません。しかし、参照を通じて「ary」にアクセスしたい:

#include <stdio.h>
#include <stdlib.h>

#define NUM_X (4)
#define NUM_Y (4)

int ary[NUM_X][NUM_Y] =
{
    {11, 12, 13, 14},
    {21, 22, 23, 24},
    {31, 32, 33, 34},
    {41, 42, 43, 44},
};

void printAry(int *ppAry[])
{
    int i, j;
    for(i = 0; i < NUM_X; ++i)
    {
        for(j = 0; j < NUM_Y; ++j)
            //printf("%d\t", ary[i][j]);
            printf("%d\t", ppAry[i][j]);

        printf("\n");
    }
}

int main()
{
    int **ppAry = &(ary[0][0]);

    printAry(ppAry);

    return 0;
}

上記のプログラムを実行すると、実行時エラーが発生します。これは、ppAry が適切な参照ではないためだと思います。これを機能させるためにppAryを変更するにはどうすればよいですか?

4

2 に答える 2