【发布时间】:2012-01-06 09:18:42
【问题描述】:
我正在编写一个函数,它解析带有纹理和动画数据的文件并将其加载到我声明的一些全局结构中。我在特定行上收到编译器警告“来自不兼容的指针类型的赋值”。代码很多,这里只贴重要部分。
首先,我的动画例程有一个结构数据类型,如下所示:
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]);
在最后一行,我收到编译器警告。我还没有使用那个变量,所以我不知道警告是否是一个问题,但我觉得我的语法或方法在设置该变量时可能不正确。
【问题讨论】:
-
(*anim)[i].next是指向struct animation的指针;&((*anim)[*tmp])是一个animation的地址,一个没有标签的struct。
标签: c pointers struct warnings