산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C언어 free() 함수 마스터하기: 실전 가이드와 예제

C언어에서 free() 함수란?

free() 함수는 C 표준 라이브러리의 일부로, malloc(), calloc(), realloc()로 이전에 할당된 메모리를 해제합니다. 블록을 힙에 반환함으로써 프로그램의 메모리 풋프린트를 제어하고 사용 가능한 메모리 고갈을 방지합니다.

스택 변수와 달리 동적으로 할당된 메모리는 명시적으로 해제해야 합니다. free() 호출을 누락하면 메모리 누수가 발생하고 결국 out-of-memory 에러로 이어질 수 있습니다.

문법

void free(void *ptr);

여기서 ptr은 해제하려는 메모리 블록을 가리키는 포인터입니다. NULL 포인터를 전달하는 것은 안전하며 아무런 연산도 수행하지 않습니다.

실전 예제

#include <stdio.h>
#include <stdlib.h>
int main(void) {
    // 10개 정수를 위한 공간 할당
    int *ptr = malloc(10 * sizeof(*ptr));
    if (ptr == NULL) {
        fprintf(stderr, "Memory allocation failed\n");
        return 1;
    }
    // 값 저장 및 출력
    ptr[2] = 50;
    printf("3번째 정수의 값은 %d\n", ptr[2]);
    // 메모리 해제
    free(ptr);
    return 0;
}

출력:

3번째 정수의 값은 50

모범 사례

C 언어

  1. VHDL 비순수 함수 활용: FSM 가독성과 유지보수성 높이기
  2. VHDL 함수 마스터하기: 효율적 설계를 위한 실전 가이드
  3. C++ vector 마스터: 동적 배열, 반복자, 실전 예제 총정리
  4. C++ std::map 완전 정복: 정렬된 키-값 컨테이너 실전 가이드
  5. C언어 calloc(): 제로 초기화 메모리 할당과 실전 예제
  6. C언어 realloc() 활용법: 문법, 모범 사례, 실전 예제
  7. Java String length() 메서드: 문자열 크기 구하기 (예제 포함)
  8. Java String compareTo() 마스터: 문법, 활용 케이스, 실전 예제
  9. Java BufferedReader로 파일 읽기: 실전 가이드와 예제
  10. Python strip() 메서드 완전 정복: 종합 가이드와 실전 예제