问题:
给定一个整数 numRows,返回帕斯卡三角形的第一个 numRows。 在帕斯卡三角形中,每个数字都是它正上方的两个数字之和
** 5 行帕斯卡三角形示例:** [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
/** 代码应包括:
我遇到的错误: 地址消毒剂::堆栈缓冲区溢出。
为什么会出现此错误?
回答我做了:
int** generate(int numRows, int* returnSize, int** returnColumnSizes){
int **p=(int**)malloc(numRows*sizeof(p));
*returnSize=numRows;
int i=0, j;
*returnColumnSizes = (int*)malloc(sizeof(int)*numRows);
for(i=0;i<numRows;i++)
{
p[i]=(int*)malloc((i+1)*sizeof(int));
p[i][0]=1;
if(i>=1)
{
p[i][i]=1;
}
for(j=1;j<=i-1;j++)
{
p[i][j]=p[i-1][j-1]+p[i-1][j];
}
*returnColumnSizes[i]=i+1;
}
return p;
}
错误: 地址清理器::堆栈缓冲区溢出