構造体へのポインタが渡されていますが、最初の8つのメンバーは同じサイズですが、インデックスでアクセスできますか?インデックスによる構造体へのアクセス
typedef struct example{
uint64_t one;
uint64_t two;
uint64_t three;
uint64_t four;
uint64_t five;
//etc...
uint8_t ninth;
} example_t;
void example_method(example_t *ptr)
{
//can I do this?
&ptr[2] // which would be equal to the uint64_t third?
}
詐欺的であり、動作が保証されていない不正行為が必要です。おそらく配列のみを使用するか、おそらく配列とその下部構造の「共用体」を使用して構造体を再設計する方が良いでしょう(それについてのいくつかの注意点もあります)。使用パターンに合わせて構造を設計するのが最善です。配列として扱う必要がある場合は、配列として格納します。 –
@ JonathanLefflerと合意すれば、構造を再設計する方がよいでしょう。 – blazs