[解決済み] 混合データ型(int, float, charなど)を配列に格納する方法は?
2022-05-01 14:26:32
質問
データ型が混在しているものを配列に格納したい。どうしてそんなことができるのだろう。
どのように解決するのですか?
配列の要素を判別可能なユニオンにすることで、別名 タグ付け組合 .
struct {
enum { is_int, is_float, is_char } type;
union {
int ival;
float fval;
char cval;
} val;
} my_array[10];
があります。
type
のどのメンバを選択するかを保持するために使用されます。
union
は配列の各要素に対して使用する必要があります.ですから,もし
int
を最初の要素に入れるとします。
my_array[0].type = is_int;
my_array[0].val.ival = 3;
配列の要素にアクセスする場合は、まず型を確認し、対応するユニオンのメンバを使用する必要があります。A
switch
文が便利です。
switch (my_array[n].type) {
case is_int:
// Do stuff for integer, using my_array[n].ival
break;
case is_float:
// Do stuff for float, using my_array[n].fval
break;
case is_char:
// Do stuff for char, using my_array[n].cvar
break;
default:
// Report an error, this shouldn't happen
}
を確保するのはプログラマーに任されている。
type
に格納された最後の値に常に対応します。
union
.
関連
-
[解決済み] c または c++ 用のシンプルな 2 次元クロスプラットフォームグラフィックスライブラリ?[クローズド]
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] mallocの結果はキャストするのですか?
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] JavaScriptで配列を空にするにはどうしたらいいですか?
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] 配列を値でコピーする
-
[解決済み] JavaScriptのオブジェクトの配列からidでオブジェクトを検索する
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[C] レポートエラー 代入の左オペランドとしてlvalueが必要
-
#137: 式は変更可能なlvalueでなければならない問題 // 文字列配列の代入問題
-
C/C++の再定義
-
[解決済み] Valgrind が初期化されていないバイトについて警告する
-
[解決済み] stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み] CコードでEOFを表現する?
-
[解決済み] C - Setデータ構造を実装するには?
-
[解決済み] C言語でファイルが存在するかどうかを確認する最も良い方法は何ですか?
-
[解決済み] C言語のi++と++iに性能差はあるのでしょうか?
-
[解決済み] ストラクチャーとユニオンの違い