解决*****请参考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