반응형
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 |