メンバー参照およびポインター演算子の機能についていくつかの懸念があります..
次の例を見てください。
struct ID{
uint8_t index;
bool active;
}
struct Square{
struct ID shortID;
struct BUDDY *bud;
uint8_t x;
uint8_t y;
};
そして、後で正方形へのポインターを返します..私の質問は、ID のメンバーを変更して、ネストされた構造体に変更を反映させることはできますか?
void function1()
{
Square *someSquare = GetSquare(1);
someSquare->shortID.index = 89; // Is this now reflected everywhere? OR was the shortID struct only modified in the scope of this funciton..
}
void function2()
{
Square *someSquare = GetSquare(1);
if ( someSquare->shortID.index != 89 )
{
// Dang...
}
}
ありがとう!
編集:
簡潔な回答をありがとう、はい、GetSquare 関数は、正方形の配列の指定されたインデックスへのポインターを返します。そのようです:
Square* GetSquare( uint8_t index )
{
return &squares[index];
}
そのため、オブジェクトの作成時に "squares" 配列が 1 回割り当てられるため、インスタンスは毎回同じである必要があります。だからあなたの洞察に感謝します私の問題は私のコードのどこかにあるはずです:)