表紙 <戻 進> i-mobile

   動的配列&mallocを使いたい   

  1. 第1項:mallocを使って動的配列を宣言したいのですが、方法がわかりません。

[1]mallocを使って動的配列を宣言したいのですが、方法がわかりません。


まず、初心者の作るプログラムでは、まずmallocは必要ありません。
今時のパソコンは、char s[1000000]; 程度の配列ではビクともしません。
また、組み込みの場合は逆で、メモリ節約のためにもmallocは控えるべきです。
そのことをふまえた上で、次の使い方を読んでください。

[  最も簡単なmallocの使い方  ]
次のようにしてメモリを確保します。int型以外でも同じです。構造体ですら。
 int *data;
 data = malloc(sizeof(int) * 必要な要素数);

確保したメモリは普通の配列と同じようにして使えます。
 data[i] = 10;

要素数を増やしたくなったら次のようにして増やします。
 data = realloc(data,sizeof(int) * 必要な要素数);

配列を使わなくなったらこのようにして解放します。
 free(p);
なお、ごく小規模のプログラムなら、free関数による解放は必要ありません。
ただし、freeを付けないと教師や上司に怒られる可能性が高いので、
main関数の最後でfree関数を呼び出してください。

目次に戻る

i-mobile

<−前に戻る  先頭に戻る  次へ進む−>