テクスチャとアニメーションデータを含むファイルを解析し、宣言したグローバル構造体にロードする関数を作成しています。特定の行でコンパイラーが "互換性のないポインタータイプからの割り当て"という警告を受け取りました。コードはたくさんあるので、ここで重要な部分を投稿するつもりです。次のように"互換性のないポインタ型からの代入"警告
まず、私は、私のアニメーションルーチン用構造体のデータ型を持っている:あなたが見ることができるように
typedef struct {
unsigned int frames;
GLuint *tex;
float *time;
struct animation *next;
} animation;
は、構造体の最後の変数は、アニメーションがあるときにデフォルトに別のアニメーションへのポインタであります完了しました。ここ
は、ローディング関数の宣言である:
void LoadTexturePalette(GLuint **texture, animation **anim, const char *filename)
関数は、従ってアニメーションの配列、二重ポインタに情報をロードします。各アニメーションのロードの最後に
は、整数は「次の」ポインタが指し示す先となる(ロードされているもののうち)どのアニメーションを表すファイルから引き出されます。
fread(tmp, 1, 4, file);
(*anim)[i].next = &((*anim)[*tmp]);
最後の行でコンパイラの警告が表示されます。私はまだその変数を使用していないので、警告が問題であるかどうかはわかりませんが、その変数を設定する際に構文や方法が正しくない可能性があります。タグ(typedef struct animation { /* ... */ } animation;
)なし
'(*アニメーション)[i]は.next'はへのポインタであります'structアニメーション'; '&((* anim)[* tmp])'は 'アニメーション'のアドレスで、 'struct'はタグなしです。 – pmg