C言語,malloc()関数でメモリ領域を動的に確保する

スポンサーリンク

鍛錬 732

C言語,malloc()関数でメモリ領域を動的に確保する

指定したバイトサイズのメモリ領域を動的に確保するには、malloc()関数を使用します。
 
以下は、malloc()関数についてです。

#include <stdlib.h>

void *malloc(size_t size);
 

 
確保したメモリ領域は、free()関数で解放する必要があります。

引数

以下は、上記の引数についてです。

引数 意味
size_t size 確保するバイトサイズ

戻り値

以下は、戻り値についてです。

戻り値
void 成功 割り当てられたメモリに対するポインタ
エラー NULL
スポンサーリンク

プログラム

以下は、指定したバイトサイズのメモリ領域を動的に確保するプログラム、test_malloc.c です。

今回は、char サイズのメモリを 256 個確保しています。

// include
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// main
int main(void)
{
	char *p;
	int nmem;
	
	// 256個(charサイズ)のメモリを確保
	nmem = 256;
	p = (char *)malloc(sizeof(char) * nmem);
	if (p == NULL) {
		printf("ERROR,malloc\n");
		exit(EXIT_FAILURE);
	}
	
	// 文字列を格納
	memcpy(p, "ABC", 3);
	p[3] = '\0';
	printf("%s\n", p);
	
	// メモリ解放
	free(p);
	
	return 0;
}
スポンサーリンク

実行結果

以下は、プログラム test_malloc.c を実行しています。

***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ gcc -Wall -Wextra test_malloc.c -o test_malloc
***@ubuntu:~/***/test/c$ ./test_malloc
ABC

 
上記に示した通り、指定したバイトサイズのメモリ領域を確保することができました。

タイトルとURLをコピーしました