-2

関数へのポインターへのポインターとしてマトリックスを渡すと、機能しません。

#include <stdio.h>

void printMatrix(int **matrix, int row, int col)
{
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
            printf("%d ", matrix[i][j]);
        printf("\r\n");
    }
}
void printM (size_t row, size_t col, int matrix[3][4])
{
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
            printf("%d ", matrix[i][j]);
        printf("\r\n");
    }
}
int main() 
{
    int M[3][4];
    for (int i = 0; i < 3; i++)
        for (int j = 0; j < 4; j++)
            M[i][j] = 4*i+j;

    printM(3, 4, M);

    int *row = *M;
    printMatrix(&row, 3, 4);    //not working
}

関数は機能printMしますが、ポインターからポインターへの正しい使用方法を知りたいのですが、助けてくれてありがとう。

4

2 に答える 2