/**
* Return an array of arrays of size *returnSize.
* The sizes of the arrays are returned as *returnColumnSizes array.
* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
*/int**matrixReshape(int** mat,int matSize,int* matColSize,int r,int c,int* returnSize,int** returnColumnSizes){int m=matSize,n=matColSize[0];if(m*n!=r*c){*returnSize= matSize;* returnColumnSizes=matColSize;return mat;}* returnSize=r;* returnColumnSizes=(int*)malloc(sizeof(int)*r);int**newmat=(int**)malloc(sizeof(int*)*r);//指向int*后续还需要定定义for(int i=0;i<r;i++){(*returnColumnSizes)[i]=c;
newmat[i]=(int*)malloc(sizeof(int)*c);}for(int x =0; x < m * n;++x){
newmat[x / c][x % c]= mat[x / n][x % n];}return newmat;}
/**
* Return an array of arrays of size *returnSize.
* The sizes of the arrays are returned as *returnColumnSizes array.
* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
*/int**generate(int numRows,int* returnSize,int** returnColumnSizes){int i,j;*returnSize=numRows;*returnColumnSizes=(int*)malloc(sizeof(int)*numRows);int**yh=(int**)malloc(sizeof(int*)*numRows);for(i=0;i<numRows;i++){(*returnColumnSizes)[i]=i+1;
yh[i]=(int*)malloc(sizeof(int)*(i+1));}for(i=0;i<numRows;i++){for(j=0;j<i+1;j++){if(j==0)
yh[i][j]=1;elseif(j==i)
yh[i][j]=1;else
yh[i][j]=yh[i-1][j-1]+yh[i-1][j];}}return yh;}
566. 重塑矩阵/** * Return an array of arrays of size *returnSize. * The sizes of the arrays are returned as *returnColumnSizes array. * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free(). */int** matrixReshape