free
헤더 파일
[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - stdlib.h
void free(void *ptr); 동적으로 할당한 메모리 해제
입력 매개 변수 리스트
ptr 동적으로 할당한 메모리 주소
반환 값
없음
free 함수는 동적으로 할당한 메모리를 해제하는 함수입니다.
동적으로 할당한 메모리는 부분적으로 해제할 수 없습니다.
따라서 프로그램에서는 동적으로 할당한 메모리 주소를 기억해 두었다가 더 이상 사용하지 않을 때 free 함수로 해제합니다.
만약 동적으로 할당한 메모리의 크기를 변경하기 원하는 realloc 함수를 사용합니다.
사용 예
//C언어 표준 라이브러리 함수 사용법 가이드
//void free(void *ptr); 동적으로 할당한 메모리 해제
//정수형 변수의 주소를 포인터 변수로 사용 및 동적 메모리 할당하여 사용하는 코드
//정수형을 원소로 하는 배열을 포인터 변수로 사용 및 동적 메모리 할당하여 사용하는 코드
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
{//정수형 변수의 주소를 포인터 변수로 사용 및 동적 메모리 할당하여 사용하는 코드
int i;
int *p1, *p2;
p1 = &i;//i 변수의 주소를 p1 변수에 대입
*p1 = 7;//p1이 가리키는 곳에 7 대입
printf("i: %d *p1:%d\n",i ,*p1);//확인
p2 = (int *)malloc(sizeof(int));//int 크기의 메모리를 동적 할당
*p2 = 7;//p2가 가리키는 곳에 7 대입
printf("*p2: %d \n", *p2);//확인
free(p2);//동적으로 할당한 메모리 해제
}
{//정수형을 원소로 하는 배열을 포인터 변수로 사용 및 동적 메모리 할당하여 사용하는 코드
int arr[10];
int *base, *base2;
int asize, i;
base = arr;
//base와 인덱스를 이용하여 값 설정
for(i=0;i<10;i++)
{
base[i] = i+1;
}
//arr과 인덱스를 이용하여 값 확인
for(i=0;i<10;i++)
{
printf("%d ", arr[i]);
}
printf("\n");
printf("동적으로 할당할 개수를 입력 : ");
scanf_s("%d",&asize);
base2 = (int *)malloc(sizeof(int)*asize);//int 형식 크기 * asize 만큼의 메모리 동적 할당
//base2와 인덱스를 이용하여 값 설정
for(i=0;i<10;i++)
{
base2[i] = i+1;
}
//base2와 인덱스를 이용하여 값 확인
for(i=0;i<10;i++)
{
printf("%d ", base2[i]);
}
free(base2);//동적으로 할당한 메모리 해제
printf("\n");
}
return 0;
}
출력
i: 7 *p1: 7
*p2: 7
1 2 3 4 5 6 7 8 9 10
동적으로 할당할 개수를 입력 : 10(입력)
1 2 3 4 5 6 7 8 9 10
사용한 함수
[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - printf
[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - scanf_s
[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - free
관련 함수
'언어 자료구조 알고리즘 > C11 표준 라이브러리 함수' 카테고리의 다른 글
exit 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
---|---|
atexit 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
abort 함수[C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
realloc 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
malloc 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
calloc 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
srand 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
rand 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
strtoull 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
strtoul 함수[C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |