在我的 C 程序中,我使用带有以下参数的 void 函数:一个 2D int 数组、一个用于创建新动态数组的 int 指针和一个 last int 指针,该指针将保存将在功能。所以动态数组是使用 malloc 在函数中创建的,一切正常,直到我在调用函数后在 main() 中打印它的元素。我得到的是垃圾而不是我应该看到的数字。这是功能代码:
void availableMoves(int array[][3], int *av, int *counter)
{
int i, j;
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
{
if (array[i][j] == E)
{
printf("%d ", 3*i + j + 1);
(*counter)++;
}
}
}
av = (int *) malloc(*counter * sizeof(int));
if (av == NULL)
{
printf("ERROR!");
}
else
{
for (i=0; i<*counter; i++)
*(av + i) = 0;
int pos = 0;
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
{
if (array[i][j] == E)
{
*(av + pos++) = 3*i + j + 1;
}
}
}
}
}