Função da biblioteca C - realloc ()

Descrição

A função da biblioteca C void *realloc(void *ptr, size_t size) tenta redimensionar o bloco de memória apontado por ptr que foi alocado anteriormente com uma chamada para malloc ou calloc.

Declaração

A seguir está a declaração da função realloc ().

void *realloc(void *ptr, size_t size)

Parâmetros

  • ptr- Este é o ponteiro para um bloco de memória previamente alocado com malloc, calloc ou realloc para ser realocado. Se for NULL, um novo bloco é alocado e um ponteiro para ele é retornado pela função.

  • size- Este é o novo tamanho do bloco de memória, em bytes. Se for 0 e ptr apontar para um bloco de memória existente, o bloco de memória apontado por ptr será desalocado e um ponteiro NULL será retornado.

Valor de retorno

Esta função retorna um ponteiro para a memória recém-alocada ou NULL se a solicitação falhar.

Exemplo

O exemplo a seguir mostra o uso da função realloc ().

#include <stdio.h>
#include <stdlib.h>

int main () {
   char *str;

   /* Initial memory allocation */
   str = (char *) malloc(15);
   strcpy(str, "tutorialspoint");
   printf("String = %s,  Address = %u\n", str, str);

   /* Reallocating memory */
   str = (char *) realloc(str, 25);
   strcat(str, ".com");
   printf("String = %s,  Address = %u\n", str, str);

   free(str);
   
   return(0);
}

Vamos compilar e executar o programa acima que produzirá o seguinte resultado -

String = tutorialspoint, Address = 355090448
String = tutorialspoint.com, Address = 355090448