如何正确访问此结构中的指针?

下面是2个结构的定义,然后是使用它们的简短方法体。 我不明白为什么编译器会抛出错误:

physics.c:95:错误:赋值中不兼容的类型

cpBodycpSpace是来自外部库的类型,这不是问题的一部分。

 typedef struct gameBody gameBody; struct gameBody { cpBody *body; int numberOfShapes; cpShape *arrayOfShapes; //This stores an array of pointers to Shapes }; //Struct that stores the cpSpace object and the array of pointers to the body objects typedef struct gameSpace gameSpace; struct gameSpace { cpSpace *space; int numberOfObjects; gameBody *arrayOfObjects; //This stores an array of gameBodys }; void physicsAddBody(gameSpace *space, gameBody *body, int objectIndex) { gameBody *array = space -> arrayOfObjects; array[objectIndex] = body; //THIS IS WHERE THE ERROR IS THROWN } 

array [objectIndex] = body;

在左侧是gameBody ,在右侧是gameBody*

您是否尝试复制结构或者是否要将指针指定为指针数组?

你的最后一行应该是:

 array[objectIndex] = *body; 

因为身体不是游戏体,而是指向游戏体的指针。

(我希望你已经在某个地方分配了内存…)