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

C 라이브러리의 realloc() 함수:어떻게 사용합니까? 구문 및 예

realloc()이란 무엇입니까?

realloc() 이미 할당된 메모리 블록에 더 많은 메모리 크기를 추가하기 위한 C 라이브러리의 기능입니다. C에서 realloc의 목적은 원래 내용을 그대로 유지하면서 현재 메모리 블록을 확장하는 것입니다. realloc() 함수는 malloc 또는 calloc 함수에 의해 이전에 할당된 메모리의 크기를 줄이는 데 도움이 됩니다. realloc은 메모리 재할당을 의미합니다.

C의 realloc 구문

ptr = realloc (ptr,newsize);

위의 명령문은 변수 newsize에 지정된 크기로 새 메모리 공간을 할당합니다. 함수를 실행한 후 포인터는 메모리 블록의 첫 번째 바이트로 반환됩니다. 새 크기는 이전 메모리보다 크거나 작을 수 있습니다. 새로 할당된 블록이 이전 메모리 블록과 동일한 위치를 가리키는지 확신할 수 없습니다. C의 realloc 함수는 새 영역의 모든 이전 데이터를 복사합니다. 데이터가 안전하게 유지되도록 합니다.

예:

#include <stdio.h>
int main () {
   char *ptr;
   ptr = (char *) malloc(10);
   strcpy(ptr, "Programming");
   printf(" %s,  Address = %u\n", ptr, ptr);

   ptr = (char *) realloc(ptr, 20); //ptr is reallocated with new size
   strcat(ptr, " In 'C'");
   printf(" %s,  Address = %u\n", ptr, ptr);
   free(ptr);
   return 0;
}

realloc() 사용 방법

C의 아래 프로그램은 C에서 realloc을 사용하여 메모리를 재할당하는 방법을 보여줍니다.

#include <stdio.h>
#include <stdlib.h>
    int main() {
        int i, * ptr, sum = 0;
        ptr = malloc(100);
        if (ptr == NULL) {
            printf("Error! memory not allocated.");
            exit(0);
        }
        
        ptr = realloc(ptr,500);
    if(ptr != NULL)
           printf("Memory created successfully\n");
           
    return 0;

    }

C 예제의 realloc 결과:

Memory created successfully

realloc 결과 작업이 실패할 때마다 null 포인터가 반환되고 이전 데이터도 해제됩니다.


C 언어

  1. 몰리브덴은 어떻게 사용합니까?
  2. Azure DevOps를 효과적으로 사용하는 방법은 무엇입니까?
  3. VHDL에서 함수를 사용하는 방법
  4. 퍼즐에 에폭시 수지를 사용하는 방법
  5. 프로그램 예제가 있는 C 라이브러리의 calloc() 함수
  6. C 라이브러리의 free() 함수:어떻게 사용합니까? 예제로 배우기
  7. 소화기 사용 시기 및 방법
  8. 페인트 분무기를 효과적으로 사용하는 방법
  9. 서미스터를 사용하는 것이 얼마나 쉬운가요?!
  10. 커터 그라인더 사용 방법