Я пишу функцию, которая анализирует файл с данными текстуры и анимации и загружает его в некоторые глобальные структуры, которые я объявил. Я получаю предупреждение компилятора «Назначение из несовместимого типа указателя» в определенной строке. В нем много кода, поэтому я просто опубликую здесь важные части.
Во-первых, у меня есть тип структуры данных для моих процедур анимации, как показано ниже:
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]);
В последней строке я получаю предупреждение компилятора. Я еще не использую эту переменную, поэтому я не знаю, является ли предупреждение проблемой, но у меня возникает ощущение, что мой синтаксис или мой подход могут быть неверными при установке этой переменной.