スポンサードリンク
HOME > C言語 > 動的メモリについて

C言語 - 動的メモリについて

通常のC言語プログラムでは、必要な変数だけを宣言して使いますが、

実行時によって使いたい変数の数が増えたり減ったりするプログラムを

作りたい場合があります。

こういった場合に動的メモリを使います。

#include <stdio.h>

void main(void) {
   int* p;

   p = (*int)malloc(sizeof(int)*3);

   p[0] = 10;
   p[1] = 20;
   p[2] = 30;

   printf("%d\n", p[0]+p[1]+p[2]);

   free(p);

}

malloc 関数で動的にメモリを確保しています。

引数は、確保するバイト数を指定します。

この場合、int型のサイズ4バイト x 3 としているので、12バイト確保されます。

malloc 関数の戻り値はvoid* 型なので、必要に応じた型にキャストして使います。

ここでは、int*型にキャストして使用可能にしています。

確保したら、あとは、普通のポインタとして使えます。

そして、確保した動的メモリが必要なくなったら、free 関数で解放してあげます。

この解放処理を怠ると、その領域が確保されたままになってしまい、非効率です。

アプリケーションが終了すると、動的メモリは自動的に解放されるようになっていますが、

365日中動作するアプリケーションを組む場合に動的メモリの解放を忘れると、

そのアプリケーションが動的メモリを使いすぎて他のシステムに障害を与えてしまう事も

あり得ます。

確保したら必ず解放するように管理・設計する事が重要です。



スポンサードリンク







HOME

言語解説編
プログラミング用語・知識

C言語

C++言語

Java

C#

Visual Basic.NET

アプリケーション編
C言語による
コンソールプログラミング




Copyright (C) プログラミングランド All Rights Reserved