>> C言語関数一覧トップに戻る

C言語 malloc 使い方

今回はC言語のmalloc関数ついて説明します。

malloc関数は指定したバイト分のメモリを確保する関数です。

■書式
#include <stdlib.h>
void *malloc(size_t size);

引数には確保するバイトを指定します。
戻り値は確保したメモリのポインタがvoid型で返ってきます。
失敗した場合はNULLが返ります。

戻り値のポインタはvoid型で返ってくるので、
その後利用するデータ型にキャスト(変換)してやる必要があります。
キャストは関数の前に、

(型)

と書きます。
char型のポインタにキャストするなら、
(char*)
int型のポインタにキャストするなら、
(int*)
という風になります。
■サンプルコード
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	char *ch;

	//確保したメモリをchar型ポインタにキャスト
	ch = (char*)malloc(100);

	puts("文字列を入力してください。");

	gets(ch);

	printf("入力した文字は→%s\n",ch);

	free(ch);

	
	return 0;
}
■実行結果
文字列を入力してください。
ABCDEFG
入力した文字は→ABCDEFG



上記のコードではmallocでメモリを100バイト確保して、戻り値のポインタをchar型のポインタにキャストして、
ポインタ変数chで受け取っています。
その後、標準入力から文字列を受け取ってch変数に格納して表示しています。
ちゃんと表示できているので、問題なくメモリが確保できていることがわかります。

確保したメモリは最後に必ず解放する必要があります。
free関数で確保したポインタを指定し、解放しています。
>> 【C言語 free 使い方】に進む
>> C言語関数一覧トップに戻る