配列を使用しないでください。配列の宣言は、中間インデックスを使用していません
int arr[30];
と
arr[1]=x;
arr[2]=y;
arr[30]=z;
を使用して、その後ARR [3]〜ARR [29]は、未使用で不要なメモリ空間を消費します。
arr [3]〜arr [29]にメモリを割り当てない方法はありますか?
配列を使用しないでください。配列の宣言は、中間インデックスを使用していません
int arr[30];
と
arr[1]=x;
arr[2]=y;
arr[30]=z;
を使用して、その後ARR [3]〜ARR [29]は、未使用で不要なメモリ空間を消費します。
arr [3]〜arr [29]にメモリを割り当てない方法はありますか?
Cが提供する組み込み配列は、あなたが求めるものを単純にしません。
ハッシュテーブルなどのデータ構造を管理するためのコードを書くことはできますが、コンパイラはそれを実行しません。
また、arr
を長さ30と宣言しているため、arr[30]=z
は無効な操作です。インデックスはゼロベースなので、0-29だけが有効です。
次の文を持っている場合は、メモリ割り当ての量が決定されます。
int arr[30];
この文は、基本的に30の整数の連続したメモリを調達するために、実行時に指示します。メモリが不安な場合は、宣言時に配列のサイズを小さくするか、リンクリストを使用してください。
同様のマップを実装します。 – BLUEPIXY
別の方法は[疎配列](https://en.wikipedia.org/wiki/Sparse_array)です。しかし、それは具体的には、あなたが最も適切なソリューションを選択するために何をしたいかによって決まります –