[C言語]メモリ管理

メモリ確保関数
malloc: 指定されたメモリを確保する、確保できない場合はNULLを返す
calloc: 指定されたサイズのメモリブロックを確保、確保した領域を0クリア
realloc: 確保済みのメモリを拡張

メモリ解放関数
free: malloc, calloc, reallocで確保した領域を解放する

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

int main(void){

	// 100byteメモリ確保
	char *p = malloc(100);
	if(p == NULL){
	}

	// 100 * sizeof(int)分のメモリを確保し、中身を0でクリアする
	// p = malloc(100 * sizeof(int)); memset(p, 0, 100*sizeof(int));
	int *p2 = calloc(100, sizeof(int));
	if(p2 == NULL){

	}

	// 100byte確保しているメモリを200byteに拡張
	char *p3 =realloc(p, 200);
	if(p3 == NULL){

	} else {
		p = p3;
	}

	free(p2);
	free(p);


	return 0;
}