본문 바로가기
Language/C언어

C010_malloc사용하기

by OdOp 관리자 2023. 9. 12.
반응형

malloc

포인터 변수에 원하는 만큼 메모리 공간을 할당하여 사용합니다.

 

포인터 = malloc(sizeof(자료형) * 자료형의 갯수);

malloc이 성공하면 메모리 주소를 반환하고 실패하면 NULL을 반환합니다. 

malloc은 'stdlib.h'라는 헤더파일에 선언이 되어 있습니다. 

 

문자열 만들기

#include <stdio.h>
#include <stdlib.h>  //malloc, free 함수가 선언된 헤더 파일

int	main(void)
{
    char *str1;
 
    str1 = malloc(sizeof(char) * 14);
    str1 = "Hello, world!";
    printf("%s\n", str1);
    free(str1);
    return (0);
}

str1문자열을 만듭니다. 이때 문자열의 길이가 마지막에 있는 null문자를 포함하여 총 14이므로 malloc으로 지정해 줍니다.

마지막에 무조건 free를 사용하여 할당한 메모리를 해제해 주어야 합니다. 

왜냐하면 메모리 누수가 발생할 수 있기 때문입니다. 

 

메모리 누수(memory leak)란??

메모리를 해제하지 않아 메모리 사용량이 계속 증가하는 현상입니다. 

따라서 malloc을 사용하면 저희 free를 꼭 해주기로 합시다. 

반응형

'Language > C언어' 카테고리의 다른 글

C012_struct, 구조체에 대해  (0) 2023.09.14
C011_배열 사용하기  (0) 2023.09.13
C009_포인터에 대해(간단히)  (0) 2023.09.11
C008_continue와 break  (0) 2023.09.10
C007_do ~ while문  (0) 2023.09.09