I am trying to solve a Leetcode problem in C. https://leetcode.com/problems/pascals-triangle/description/
This is my solution to the problem.
I don't think there's an issue with the solution but dynamically allocating memory for a 2D array is getting very complex. Can someone please help me figure out how to correctly allocate memory dynamically to a 2D array. Updated the code based on BLUEPIXY suggestions, I still seem to be getting runtime error.
/**
 * 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;
}
 
     
     
     
    