我有一个项目,我在 C 中创建了几个动态的二维整数数组。
我试图通过创建一个 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));
}