Clang のドキュメントを読んでいるときに、次の興味深い情報を見つけました: [1]
clang は、構造体で可変長配列を許可する gcc 拡張機能をサポートしていません。これにはいくつかの理由があります。1 つは実装が難しい、2 つは拡張機能が完全に文書化されていない、3 つは拡張機能がめったに使用されないように見えるということです。clang は柔軟な配列メンバー (構造体の末尾にゼロまたは未指定のサイズを持つ配列) をサポートしていることに注意してください。
この拡張機能はどのように使用できますか? 私の理解では、コンストラクター内で alloca を使用すると、呼び出し元の関数の最後にスタック ポインターが復元されます。この場合、それはコンストラクターであり、囲んでいる構造体の最後ではありません。
助けてくれてありがとう!