私の C プログラムでは、次の引数を指定して void 関数を使用しています。関数。したがって、動的配列は 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;
}
}
}
}
}