C 访问结构中的结构中的指针

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

抛出错误,我不确定原因:

physics.c:74:错误:初始化中的类型不兼容

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];