MMGamesロゴ  MMGames
Twitterシェアボタン  Facebookシェアボタン   
 English 

しんで覚えるC言語
しんで覚えるC言語

動的配列&mallocを使いたい

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

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

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

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

配列を使わなくなったらこのようにして解放します。
free(p);

なお、ごく小規模のプログラムなら、free関数による解放をしなくても問題はないのですが、
大規模なプログラムで解放を忘れると、いわゆる「動かしているうちにだんだん遅くなる」の原因となります。
したがって、解放するクセをつけるためにも、必ずfree関数を呼び出しましょう。


本サイトについて

苦しんで覚えるC言語(苦C)は
C言語入門サイトの決定版です。
C言語の基本機能を体系立てて解説しており、
市販書籍と同等以上の完成度です。

第0部:プログラム概要編
  1. プログラムとは何か?
2章:プログラムの書き方
  1. 書き方のルール
  2. 書き方の慣習
  3. 練習問題2
3章:画面への表示
  1. 文字列の表示
  2. 改行文字
  3. 練習問題3
6章:キーボードからの入力
  1. 入力用の関数
  2. 入力の恐怖
  3. 練習問題6
9章:回数が決まっている繰り返し
  1. 繰り返しを行う文
  2. ループ動作の仕組み
  3. 練習問題9
10章:回数がわからない繰り返し
  1. 回数不明ループ
  2. 入力チェック
  3. 練習問題10
13章:複数の変数を一括して扱う
  1. 複数の変数をまとめて扱う
  2. 配列の使い方
  3. 練習問題13
20章:複数のソースファイル
  1. 最小限の分割
  2. 分割の定石
  3. 練習問題20

コメント
COMMENT

💬 コメント投稿欄を開く