問題タブ [flexible-array-member]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
55 参照

c - 構造体の柔軟なメンバー配列内の構造体メンバーのアドレスを出力する

柔軟なメンバー配列を含む構造体があります:

データを にコピーするためのデータ構造としてfooandを使用しようとしています。baruint8_t buffer[50]

これで、次のように出力されると予想していました(つまり、連続したメモリブロック)。

代わりに、次のようになります。

私は何を間違っていますか?

0 投票する
2 に答える
112 参照

c - 柔軟な配列メンバーを持つ構造体とそれにメモリを割り当てる

ウィキペディアでリンクされているこのバージョンの C99 標準を読んで、柔軟な配列メンバーがどのように機能するかを理解しようとしました。

セクション 6.7.2.1 で、この構造体は次のように宣言されました。

そして例が与えられました:

それがそう言っていてs1s2宣言が次のように振る舞うところ:

そして、できることをいくつかリストしました:

double を格納するには不十分な 6 バイトしか割り当てられていないため、上記の最後の行が未定義である理由はわかりますが、 andの動作が次のように宣言された場合のようになるs2と言う理由がわかりません:s1s2

s2その構造体を格納するのに十分なメモリが割り当てられていないように見える場合。

このドキュメントはある種の下書きのように見えるので、エラーがあったのか、それとも意味を誤解しているのかはわかりません。