1

以下は、2 つの構造体の定義と、それらを使用する短いメソッド本体です。コンパイラがエラーをスローする理由がわかりません:

physicals.c:95: エラー: 割り当てに互換性のない型

cpBodyおよびcpSpaceは、問題の一部ではない外部ライブラリの型です。

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
}
4

2 に答える 2

2

配列[objectIndex] =本体;

左側がa gameBody、右側がagameBody*です。

構造体をコピーしようとしていますか、それともポインターをポインター配列に割り当てますか?

于 2013-02-17T08:35:29.580 に答える
0

最後の行は次のようになります。

array[objectIndex] = *body;

body は gameBody ではなく、gameBody へのポインターであるためです。

(そして、どこかにメモリを割り当てていただければ幸いです...)

于 2013-02-17T08:35:15.460 に答える