配列とポインターに問題があります。何が間違っているのかはわかっていますが、簡単な解決策を見つけることができません。
私はこのコードを持っています:
void faceRotateACW(char *face[CUBE_DIM][CUBE_DIM]){
char tempFace[CUBE_DIM][CUBE_DIM];
for (int y=0;y<CUBE_DIM;y++){
for (int x=0;x<CUBE_DIM;x++){
tempFace[y][CUBE_DIM-x]=face[x][y];
}
}
for (int a=0;a<CUBE_DIM;a++){
for (int b=0;b<CUBE_DIM;b++){
face[a][b]=tempFace[a][b];
}
}
}
問題は、char ポインターを char に割り当てようとしていることがわかりましたが、それはノーノーですが、どのように複製し、配列を変更して、参照によって渡された配列に戻すことができますか? 関数に渡す配列内の値を取得するにはどうすればよいですか?
わかりました、すべて順調に進んでいます。少なくとも、問題をよりよく理解し始めています (ありがとうございます)。私がこの機能を使用している方法もおそらく最善の方法ではないので、より多くの情報を提供する必要があります。明確にさせてください。
配列を次のように定義します。
char *faces[NUM_FACES][CUBE_DIM][CUBE_DIM]={{{"o","o","o"},{"o","o","o"},{"o","o","o"}},
{{"o","o","o"},{"o","o","o"},{"o","o","o"}},
{{"o","o","o"},{"o","o","o"},{"o","o","o"}},
{{"o","o","o"},{"o","o","o"},{"o","o","o"}},
{{"o","o","o"},{"o","o","o"},{"o","o","o"}},
{{"o","o","o"},{"o","o","o"},{"o","o","o"}}};
ただし、関数を呼び出すと、次のように外側の配列を取り除こうとしています。
faceRotateACW(faces[currentFace]);
みんなのことをいじってごめんなさい、それは私の最初の投稿です:)