C言語で大きさの異なる構造体メンバについて、構造体メンバ名ではなくて、offset(番目)でアクセスする方法はありませんでしょうか。
それができればLoopで回して構造体メンバの全てに読み書きができるので大変便利になります。
※もちろん、配列でやれば簡単な話ですが、メンバの型が異なるので配列で作るとなると最も大きなメンバのサイズを基準に作ることになり、メモリの無駄が大きくなります。
型が異なる値を「Loopで回して全てに読み書き」するとは、どのような状況なのでしょうか?
「型が異なる」構造体を同じ様にアクセスする・・・こと自体がおかしいです。
・・・設計をやり直しましょう・・・
「大きさの異なる構造体メンバ」をどうアクセスすると考えていますか? 具体的な構造体の例はないでしょうか?
最初に構造体メンバのオフセットを取得すれば、そのオフセットでのアクセスは簡単です。ただ、大きさの異なるメンバという事は、型(int,long,char, etc.)も違うと思うのですが、それをどう Loopで回すのでしょう。
どんな構造体でしょうか?
https://teratail.com/questions/274489 で解決したはずの話と思いますが、
なにか条件が変わったのですか?
> メモリの無駄が大きくなります。
「無駄」ではなく、そういうアクセスをするためのコストです。そのコストを負うとシステムが破綻するのか、という判断は必要でしょう。破綻しないのなら支払えばいい話です。破綻するのなら、そのアクセス方法を諦めるというのが「ベター」な判断となるのでは?

なんか同じような質問を3、4回くらいしてる気がするのですが…

回答3件
あなたの回答
tips
プレビュー