090 malloc 메모리 동적 할당
개념 :
1. malloc.h 에 포함되어 있습니다.
2. memory allocation 의 약자 입니다.
3. 힙 영역에 메모리를 할당하는 함수 입니다.
4. 리턴된 값은 void 포인터이고 파라메터값은 정수 형태의 할당할 크기 입니다.
(나중에 void 포인터에 대해서 이야기 할 것 이지만 지금은 그냥 사용을 위해서는 반드시 캐스팅을 해야 한다로만 정의하고 넘어가도록 하겠습니다.)
목표:
문자열의 크기 만큼을 할당하고 문자열을 카피 한다.
소스코드 : main.c
#include <stdio.h>
#include <string.h>
#include <malloc.h>
int main(void)
{
unsigned char* pString = "Hello JunmoZzi";
unsigned char* pBuffer = NULL;
int nLength = strlen((const char*)pString) + 1;// "\0"문자 널까지 포함해서 1 입니다.
pBuffer = (unsigned char*)malloc(nLength);
if (pBuffer == NULL)
{
puts("Failed Memory Allocation!");
return 0;
}
memcpy_s(pBuffer, nLength, pString, nLength);
puts(pString);
puts(pBuffer);
if (pBuffer)
{
free(pBuffer);//메모리 할당했으면 반드시 해제 해준다.
}
return 0;
}
결과
#c언어, #c언어입문, #프로그램입문, #malloc, #메모리동적할당