広告スペース(バナー)
🔧C言語 レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 42 / 68
配列の平坦化(flatten)
このレッスンでは、C言語で入れ子になった配列を平坦化(flatten)する方法を学び、複雑なデータ構造をシンプルに扱う方法を理解することを目標にします。「C言語 配列 flatten 実装」で調べている方向けです。
二次元配列を「平らな」1つの配列に展開することをflatten(平坦化)と呼びます。C言語には専用の関数がないため、for文を使って自分で実装します。
サンプルコードでは、二重のfor文で二次元配列nestedを1つずつ取り出し、flat[idx++] = nested[i][j]という形で1次元配列flatに詰め込んでいます。idx++という後置インクリメントで、代入と同時に添字を進めている点に注目してみましょう。
初心者がよくつまずくのが、結果を格納する配列のサイズを事前に計算しておく必要がある点です。他の言語のように自動的にサイズが調整される配列がないため、あらかじめ正確なサイズを確保しておく必要があります。
実際の開発現場では、入れ子構造のデータをまとめて1つのリストとして扱いたいときに役立つ、実務でも使われるテクニックです。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではC言語を直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
入れ子になったデータを、1つのまとまったリストに整理できるようになります。
入れ子になったデータを、1つのまとまったリストに整理できるようになります。
広告スペース(バナー)
広告スペース(記事内)