C 访问结构中的结构中的指针
抛出错误,我不确定原因: physics.c:74:错误:初始化中的类型不兼容C 访问结构中的结构中的指针,c,pointers,struct,C,Pointers,Struct,抛出错误,我不确定原因: physics.c:74:错误:初始化中的类型不兼容 typedef struct gameBody gameBody; 结构配子体 { cpBody*body; 整数形状; cpShape*arrayOfShapes;//这存储指向形状的指针数组 }; //结构,该结构存储cpSpace对象和指向body对象的指针数组 类型定义结构游戏空间游戏空间; 结构游戏空间 { cpSpace*空间; int numberOfObjects; gameBody*arrayOf
typedef struct gameBody gameBody;
结构配子体
{
cpBody*body;
整数形状;
cpShape*arrayOfShapes;//这存储指向形状的指针数组
};
//结构,该结构存储cpSpace对象和指向body对象的指针数组
类型定义结构游戏空间游戏空间;
结构游戏空间
{
cpSpace*空间;
int numberOfObjects;
gameBody*arrayOfObjects;//存储gameBody数组
};
对于(int i=0;inumberOfObjects;i++)
{
//身体信息
gameBody*gBody=space->arrayOfObjects[i];
}
我猜这是在排队
gameBody *gBody = space -> arrayOfObjects[i];
虽然space->arrayOfObject
是指针,space->arrayOfObject[i]
不是指针
您必须声明gBody
不是指针:
gameBody gBody = space->arrayOfObjects[i];
或者使用数组中对象上运算符的地址
gameBody *gBody = &space->arrayOfObjects[i];
试一试
或
gBody
属于gameBody*
类型,space->arrayOfObjects[i]
属于gameBody
类型。也许你想要:
gameBody *gBody = &space->arrayOfObjects[i];
根据你发布的代码
gameBody*gBody=space->arrayOfObjects[i]
arrayOfObjects[i])代码>您在25分钟内重复发布了相同的问题!这样做,而不是针对每个不同的编译器错误发布问题。1.张贴一个问题。2.阅读并理解答案。3.使用这种理解来修复代码中的多个相同错误。4.不要在没有先检查是否与20分钟前发布的问题完全相同的情况下发布新问题!!
gameBody *gBody = &(space -> arrayOfObjects[i]);
gameBody *gBody = space -> arrayOfObjects + i;
gameBody *gBody = &space->arrayOfObjects[i];