解決*****請參考BLUEPIXY簡評供液*****動態內存分配
我想在C https://leetcode.com/problems/pascals-triangle/description/
解決本文給出了問題這是我解決問題的方法。 我認爲解決方案沒有問題,但動態分配內存對於2D array
變得非常複雜。有人可以幫我弄清楚如何正確地分配內存到2D array
。更新了基於BLUEPIXY建議的代碼,我似乎仍然遇到了運行時錯誤。
/**
* Return an array of arrays.
* The sizes of the arrays are returned as *columnSizes array.
* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
*/
int** generate(int numRows, int** columnSizes) {
int i=0,j=0,numColumns =2;
columnSizes = (int **)malloc(numRows * sizeof(int *));
for (i=0; i<numRows; i++)
columnSizes[i] = (int *)malloc(sizeof(int));
int **returnArray = (int **)malloc(numRows * sizeof(int *));
for (i=0; i<numRows; i++)
returnArray[i] = (int *)malloc((i+1) * sizeof(int));
returnArray[0][0] = 1;
*columnSizes =1;
for(i=1;i<numRows;i++)
{
for(j=0;j<numColumns;j++)
{
if(j==0)
columnSizes[i][j] = returnArray[i-1][j];
else if(j==(numColumns-1))
columnSizes[i][j] = returnArray[i-1][j-1];
else
returnArray[i][j] = returnArray[i-1][j-1] + returnArray[i-1][j];
numColumns++;
}
*(columnSizes+i) = numColumns-1;
}
return returnArray;
}
需要爲每行更改(增加)numColumns。 – BLUEPIXY
您還誤解了'generate'函數的需求規格。 – BLUEPIXY
@BLUEPIXY:哦,是的,謝謝你,我把它寫在我的筆記本上。錯過了輸入。感謝您指出。儘管我仍然遇到錯誤。我會盡力弄清楚什麼是錯的。你有沒有看到我分配內存的方式有什麼問題? – CodeModeOn