-2

エラーがスローされますが、その理由はわかりません:

physicals.c:74: エラー: 初期化で互換性のない型

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


for(int i = 0; i < space -> numberOfObjects; i++)
{
    //body info
    gameBody *gBody = space -> arrayOfObjects[i];
}
4

4 に答える 4

1

ラインに入っていると思います

gameBody *gBody = space -> arrayOfObjects[i];

whilespace->arrayOfObjectはポインタですが、ポインタでspace->arrayOfObject[i] はありません

gBodyポインターではないことを宣言する必要があります。

gameBody gBody = space->arrayOfObjects[i];

または、配列内のオブジェクトで address-of 演算子を使用します。

gameBody *gBody = &space->arrayOfObjects[i];
于 2013-02-17T08:57:04.067 に答える
1

試す

 gameBody *gBody = &(space -> arrayOfObjects[i]);

また

gameBody *gBody = space -> arrayOfObjects + i;
于 2013-02-17T08:57:28.323 に答える
0

gBodyはタイプgameBody *でありspace->arrayOfObjects[i]、タイプはですgamebody。おそらくあなたが望む:

gameBody *gBody = &space->arrayOfObjects[i];
于 2013-02-17T08:58:05.870 に答える
0

あなたが投稿したコードから

gameBody *gBody = space->arrayOfObjects[i]<〜が問題です...

これは次のようになります。

gameBody *gBody = &(space->arrayOfObjects[i]);

于 2013-02-17T08:58:09.047 に答える