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

C언어 realloc() 활용법: 문법, 모범 사례, 실전 예제

realloc()이란?

realloc()은 기존 메모리 블록의 크기를 조정하는 C 표준 라이브러리 함수입니다. 블록을 확장하거나 축소하면서 기존 내용을 보존합니다. 런타임에 필요한 크기가 변경될 때 동적 메모리 관리를 더 효율적으로 만듭니다.

문법

ptr = realloc(ptr, newSize);

여기서 ptr은 이전에 할당된 블록을 가리키고, newSize는 원하는 새 크기(바이트)입니다. 호출 후 ptr은 새 블록의 첫 바이트를 가리킵니다. 재할당 성공 시 원본 데이터가 새 위치로 복사되고, 필요시 기존 블록이 해제됩니다.

기억해야 할 핵심 사항

예제 – 문자열 버퍼 크기 조정

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
    char *buf = malloc(10);
    if (!buf) {
        perror("malloc");
        return EXIT_FAILURE;
    }
    strcpy(buf, "Programming");
    printf("%s\n", buf);
    char *tmp = realloc(buf, 20); // 버퍼 크기 증가
    if (!tmp) {
        free(buf); // 원본 블록 여전히 유효
        perror("realloc");
        return EXIT_FAILURE;
    }
    buf = tmp;
    strcat(buf, " in C");
    printf("%s\n", buf);
    free(buf);
    return EXIT_SUCCESS;
}

예제 – 정수 배열 할당 및 크기 조정

#include <stdio.h>
#include <stdlib.h>
int main(void) {
    int *arr = malloc(10 * sizeof(int));
    if (!arr) {
        perror("malloc");
        return EXIT_FAILURE;
    }
    /* ... 배열 사용 ... */
    int *tmp = realloc(arr, 50 * sizeof(int));
    if (!tmp) {
        free(arr);
        perror("realloc");
        return EXIT_FAILURE;
    }
    arr = tmp;
    printf("배열 크기 조정 성공\n");
    free(arr);
    return EXIT_SUCCESS;
}

실전 팁

C 언어

  1. 몰리브덴이 현대 산업을 형성하는 방식: 용도, 이점, 공급 역학
  2. Azure DevOps 활용: 가속화된 딜리버리를 위한 검증된 관행
  3. VHDL 함수 마스터하기: 효율적 설계를 위한 실전 가이드
  4. 완성된 퍼즐을 에폭시 수지로 영걸작으로 변신시키기
  5. C언어 calloc(): 제로 초기화 메모리 할당과 실전 예제
  6. C언어 free() 함수 마스터하기: 실전 가이드와 예제
  7. 소화기 안전 사용 필수 가이드: 언제, 어떻게 사용해야 하나
  8. 페인트 스프레이어 마스터하기: 균일하고 안전한 커버리지를 위한 전문가 가이드
  9. 서미스터(NTC) 온도 센서 아두이노 활용 완전 정복 - 수식부터 구현까지
  10. 커터 그라인더(Cutter Grinder) 마스터하기: 실전 기술 가이드