抱歉,这是一个愚蠢的问题。我已经在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;
}