私が知る限り、マトリックスを作成するこの 2 つの方法は同一である必要があります。
最初の方法:
int i;
int **matrix = (int**)malloc(R*sizeof(int*));
for (i=0; i<R; i++)
matrix[i] = (int*)malloc(C*sizeof(int));
2 番目の方法:
int matrix[R][C];
R と C は次のように宣言されています。
#define R 3
#define C 5
私の質問は、2 番目の方法で宣言された行列を次のような関数に渡すときです。
void myfunction(int **m, int rows, int columns);
コードで:
myfunction(matrix,R,C);
マトリックス内の値に触れようとするとすぐにセグメンテーション違反が発生するのはなぜですか?
最初に宣言された行列を次のような関数に渡すと、同じことが起こります。
void myfunction(int m[][C], int rows, int columns);
私は何が欠けていますか?