私は、一見初歩的な問題にかなりの難問を抱えていると言わざるを得ません。配列をフィールドとして格納したい構造があります。この構造をさまざまなコンテキストで再利用したいのですが、より大きな配列が必要な場合もあれば、より小さな配列が必要な場合もあります。C では、可変サイズ バッファの使用が禁止されています。したがって、自然なアプローチは、この配列へのポインターを構造体メンバーとして宣言することです。
struct my {
struct other* array;
}
ただし、このアプローチの問題点は、動的メモリ割り当てを禁止する MISRA-C の規則に従わなければならないことです。したがって、メモリを割り当てて配列を初期化したい場合は、次のようにする必要があります。
var.array = malloc(n * sizeof(...));
MISRA 規格で禁止されています。他にどうすればこれを行うことができますか?