>>395
うわ、致命的なバグ残しててすまんです。
NextTurn()呼び出す二重ループ前にlist = NULL; が抜けてるのが原因です。

/* 次に置ける場所を調べる */
memcpy(board, game_board, sizeof(board));
list = NULL; // ←これが抜けてる
for(y = 0; y < OX; y++){

それとマス数変更は#define OX のとこの数字を変えて下さいな。

ところでポインタやsizeof等使わない方は駄目だったのかな?
うpした後見直してないから分からんけど、不具合ありました?