「C言語/標準ライブラリ/stdlib.h」の版間の差分

削除された内容 追加された内容
ページの作成:「== malloc関数 == <pre> 書きかけ </pre>」
 
1 行
== malloc関数 ==
<pre>
修正中
書きかけ
</pre>
*用いる領域を動的に定める
C言語にはmallocという標準関数があります。この関数は、利用者が用いることができるメモリ領域から、指定された大きさの領域を切り出す関数です。この関数は切り出した領域のポインタを返すため、それらの領域を用いるために、ポインタを用いる必要があります。mallocは多くの場合、sizeof演算子と組み合わせて用いられます。sizeof演算子はC言語の型を引数に取り、型の大きさを表すバイト数を返すオペレータです。例えば、int型へのポインタを返すmalloc文は次のようになります。
#include <stdlib.h>
int *a;
a = malloc(sizeof(int));
mallocは、用いたい領域の大きさをプログラムの中で定めたい時などに用いられます。例えば、利用者の入力を見て用いる領域を変化させる場合等がこの例です。
また、mallocによって切り出された領域は、プログラマによって切り出された領域であるので、例え使われなくなっても自動的に解放されることはありません。(ただし、プログラムが終了した時は別で、この時には全ての領域が解放されます。)そのため、切り出した領域を解放する方法が必要となります。この目的では、freeという標準関数を用いることが出来ます。ここでは、上の例の続きで、
free(a);
とすることで、切り出した領域を解放することが出来ます。