Soft Ware/C 언어!!

동적 메모리 할당

달려가보자 2011. 8. 7. 10:46


(받을형의 포인터)malloc(사이즈)

int * a = (int *)malloc(sizeof(int));

malloc은 메모리 할당 이후에 그 공간을 0으로 초기화 해주지 않고 쓰레기 값만 존재한다.

그러므로 memset()을 이용하여 초기화 한다.

memset(초기화 대상, sizeof(대상의 형));

이렇게 하면 할당된 메모리공간은 0으로 초기화 된다.

할당 받을때 초기화 된 함수는 없나요?   있다!!

calloc()

int * a = (int *)calloc(sizeof(int));

할당과 동시에 초기화 해서 a로 넘겨준다!!


할당된 메모리가 부족하다면 realloc를 쓰자!!!

int *str2  = realloc(할당 받았던 변수, 사이즈);

 free()

메모리 공간 해체시 필요한 함수이다!!