leetcode C语言 int**是怎么用的?

在Combination Sum这道题中用到了int** columnSizes参数,我认为他是应该申请了内存的,可是当我调用columnSizes[0] = (int*)malloc(sizeof(int));的时候没问题,但是当我调用columnSizes[1] = (int*)malloc(sizeof(int));就会出现runtime error的问题,这是为什么呢?

这道题是递归问题
代码:
class Solution {

public:

vector > result;

vector candidates;

vector > combinationSum(vector &candidates, int target) {

this->candidates = candidates;

sort(this->candidates.begin(),this->candidates.end());

getCombination(*(new vector()),0,target);

return result;

}

void getCombination(vector<int> v, int sum, int target)  
{  

    int last=INT_MIN;  
    if(v.size()>0)  
    {  
        last = v[v.size()-1];  
    }  
    int i = 0;  
    for(;i<candidates.size();i++)  
    {  
        if(candidates[i]>=last)  
        {  
            break;  
        }  
    }  
    for(int j=i;j<candidates.size();j++)  
    {  
        if(sum + candidates[j]==target)  
        {  
            v.push_back(candidates[j]);  
            result.push_back(v);  
            v.pop_back();  
        }  
        else if(sum + candidates[j]<target)  
        {  
            v.push_back(candidates[j]);  
            getCombination(v, sum+candidates[j],target);  
            v.pop_back();  
        }  
        else  
        {  
            return;  
        }  
    }  
}  

};

int**,指针的指针

 int** columnSizes = (int **)malloc(n*sizeof(int*));
 columnSizes[0] = (int*)malloc(sizeof(int));
  columnSizes[1] = (int*)malloc(sizeof(int));