私は私のデータを格納するためのC言語で簡単なstruct
作成:なぜ `struct`の代入でエラーになるのですか?
typedef struct
{
int n;
char *c[];
} simstr;
をそして、この構造体変数への代入値のために、私はこのコードを使用:テストへ
simstr ex =
{
5,
"ex_11",
"ex_12",
"ex_13",
"ex_14",
"ex_15"
};
変数が正しく作成されているかどうかは、私が作ったこの関数を実行します:
void funct(simstr a)
{
int i,
n = a.n;
for (i = 0; i < n; i++)
{
printf("%s\n", a.c[i]);
}
}
funct(ex);
私はそれを正常にコンパイルします。残念ながら、それはΘ&
の2行を返します。実行時エラーのためにこのプログラムは停止します。
私にあなたを教えてください:struct
の割り当てでエラーが発生するのはなぜですか?そしてそれらを解決する方法?
あなたは私のためにそれを説明できますか:献金はありますか? – dn174822
また、フレキシブルアレイメンバーの初期化は標準に準拠していません。集約初期化子は '{}'を必要とします。 GCCの拡張機能を使用しています。 –