int* getRow(int rowIndex, int* returnSize)
{
int **arr = malloc(sizeof(int*) * (rowIndex + 1));/*rowIndex是从0开始的*/
int i = 0, j = 1;
*returnSize = rowIndex + 1;/*返回数组的长度*/
for(i = 0; i <= rowIndex; i++)/**/
{
arr[i] = malloc(sizeof(int) * (i + 1));
arr[i][0] = arr[i][i] = 1;/*每行的第一个元素和最后一个元素赋值为1*/
for(j = 1; j < i; j++)
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
return arr[rowIndex];
}
注意:
rowIndex的值,题中给出的行的值加一等于实际数组返回的长度。
所以,开辟空间时要注意这个问题,要不然会导致越界。