将malloc 2D数组传递给函数的正确方法

时间:2019-05-25 01:39:07

标签: function multidimensional-array malloc

抱歉,这是一个愚蠢的问题。我已经在main()函数中创建了一个数组

int (*n)[properConfigs] = malloc(Nbp*sizeof(*n));

当我在main()函数中填充此数组时,代码将编译并正常工作。但是,当我将填充此数组的代码移入函数并尝试按以下方式调用它时:

void createProperStates(int Nbp, int totalConfigs, int *properStates[])

我得到警告:

警告:不兼容的指针类型将'int(*)[properConfigs]'传递给类型为'int **'的参数[-Wincompatible-pointer-types]

然后是段错误。段错误发生在我尝试填充数组的行:

if(!checkIfBubbleState(Nbp,binarray))
{
    for (int j = 0; j < Nbp; j++)
    {
        properStates[p][j] = binarray[j]; // Error occurs here.
    }
    p += 1;
}

0 个答案:

没有答案