[解決済み] flexible array member not at end of structエラーの原因は何ですか?
2022-03-13 17:20:04
質問
が表示され続けるのはなぜでしょうか?
error: flexible array member not at end of struct
というエラーが発生します。私は可変長の配列を持つ構造体を持っていますが、このエラーが出続けています。
その構造体は
typedef struct {
size_t N;
double data[];
int label[];
} s_col;
で、mallocの呼び出しは
col = malloc(sizeof(s_col) + lc * (sizeof(double) + sizeof(int)));
mallocの呼び出しはこれでよいのでしょうか?
どのように解決するのですか?
構造体には柔軟な配列メンバを 1 つだけ含めることができ、それは常に構造体の最後のメンバでなければなりません。言い換えると、この場合は
malloc
を呼び出す方法が本当にないほどです。
malloc
この構造体に対して、正しく
あなたが望んでいると思われること(同じ数の配列の
data
と
label
のメンバー)のようなものを検討することができます。
struct my_pair {
double data;
int label;
};
typedef struct {
size_t N;
struct my_pair data_label[];
};
の配列のかわりに
double
の配列に続いて
int
の場合、1つの配列が得られる。
double
に続いて、1つの
int
を、そして次の
double
次の
int
といった具合です。これが十分に同じに近いかどうかは、データをどのように使うかによります(例えば、連続した配列を期待する外部関数に渡す場合は、おそらく別の方法を取らなければならないでしょう)。
関連
-
_CRT_SECURE_NO_WARNINGS エラーメッセージ、解決方法
-
警告:代入がキャストなしで整数からポインタを作成する場合の修正方法に関する警告
-
未定義の `__isoc99_sscanf' への参照
-
[解決済み] 初期化でポインタ対象の型から修飾語を捨てる
-
[解決済み] munmap_chunk(): 無効なポインタ
-
[解決済み] flexible array member not at end of structエラーの原因は何ですか?
-
[解決済み] C 言語で const char* を char* に変換するには?
-
[解決済み] Cコードの単体テスト【終了しました
-
[解決済み] 構造体のsizeofは、なぜ各メンバーのsizeofの合計と等しくないのですか?
-
[解決済み] C言語でランダムなint型を生成するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
関数 'malloc' の暗黙の宣言に対する解決策
-
initializer element is not constant "というエラーが表示されるのですが?
-
[解決済み] Windows用Cコンパイラ?[クローズド]
-
[解決済み] C 言語で const char* を char* に変換するには?
-
[解決済み] char *とchar[]の違い [重複]
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] C言語標準に準拠した構造体の初期化方法
-
[解決済み] C言語でオブジェクト指向のコードを書くとしたら、どのようにすればよいのでしょうか?[クローズド]
-
[解決済み] なぜsizeof(x++)はxをインクリメントしないのですか?
-
[解決済み] .aファイル、.soファイルとは何ですか?