Open1

配列とポインタのメリット・デメリット

akiraakira

〜配列〜
メリット:
配列は連続したメモリ上に配置されるため、インデックスから特定の値にアクセスする時間が高速。
デメリット:
配列の中間辺りに位置する値に追加や削除を行おうとすると、その値以降後ろに位置する全ての値がデ ータをコピーして並び替える必要が生じるため、変更に負荷がかかり時間もかかる可能性がある。つまり、配列 はサイズが固定であるため、配列のサイズが頻繁に変わるような用途には向いていない。

〜ポインタ〜
メリット:
配列の配列の中間辺りに位置する値に追加や削除を行おうとすると、順序におけるその値の前の値のポ インターを変更するだけで済むので、変更に負荷がかからず時間も最小限で済む。
デメリット:
特定の値にアクセスする際、Head から数珠繋ぎのようにポインターを順番に辿っていく必要があるため 時間がかかる可能性がある。また、値を削除する際に、実際にはポインターの値を変更するだけで値自体はメモ リ上に残るため未使用領域が生じメモリ管理の効率が下がる可能性がある(ただしメモリ解放をすれば回避可)。

まとめ
配列:ランダムアクセスに強いが、サイズ固定で挿入・削除が非効率。
ポインタ:挿入・削除に強いが、ランダムアクセスが遅くなる。