一個Mallocate陣列功能我有,我在C.創建用C
我試圖通過創建mallocateArray功能,以減少冗餘代碼創建整數幾個動態2維數組的項目。我可以讓它在沒有這個功能的情況下工作。
問題是指針可以讓人討厭,由於某種原因,我只是得到一個賽格故障時,我嘗試使用這種方法:
繼承人我得到了什麼:
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);
當我運行它時,我得到一個seg故障。 所以目前我只是不使用該方法並處理冗餘。 我已經嘗試搞亂指針,通過解引用等,但我似乎無法弄清楚。
我希望你們能幫我一把。
result = (int**)malloc(row1 * sizeof(int *));
int i;
for (i = 0; i < row1; i++){
result[i] = (int*)malloc(col2 * sizeof(int));
}
你應該首先簡化你的代碼,通過傳遞'row'和'col'的值,而不是通過指針。 – 2013-03-13 01:17:02
您不需要在C程序中投射'malloc'的返回值。 – 2013-03-13 01:17:18
您在此處分配的對象不是二維數組。是的,您可以使用'[] []'語法來訪問它,但它與用'int [] []'聲明的數組不同。它通常被稱爲「鋸齒狀陣列」或「不規則陣列」。 – dmckee 2013-03-13 01:23:31