Cで整数の動的2次元配列をいくつか作成するプロジェクトがあります。
mallocateArray 関数を作成して、冗長なコードを削減しようとしています。関数なしで動作させることができます。
問題は、ポインターが迷惑になる可能性があることです。何らかの理由で、このメソッドを使用しようとすると、セグ フォールトが発生します。
私が得たものは次のとおりです。
void mallocateArray(int ***array, int *row, int *col){
//allocate storage for the array of ints:
*array = (int**)malloc(*row * sizeof(int *));
int i;
for (i = 0; i < *row; i++){
*array[i] = (int*)malloc(*col * sizeof(int));
}
}
これが私の配列の定義方法です:
int **matrix1,
int row = 2
int col = 3
mallocateArray(&matrix1, &row, &col);
実行すると、セグフォルトが発生します。したがって、現在、私はこの方法を使用せず、冗長性に対処しています。逆参照などによってポインターをいじってみましたが、それを理解できないようです。
皆さんが私を助けてくれることを願っていました。
動作するメインメソッドのコードの例を次に示します。
result = (int**)malloc(row1 * sizeof(int *));
int i;
for (i = 0; i < row1; i++){
result[i] = (int*)malloc(col2 * sizeof(int));
}