Función de biblioteca C - realloc ()

Descripción

La función de la biblioteca C void *realloc(void *ptr, size_t size) intenta cambiar el tamaño del bloque de memoria al que apunta ptr que se asignó previamente con una llamada a malloc o calloc.

Declaración

A continuación se muestra la declaración de la función realloc ().

void *realloc(void *ptr, size_t size)

Parámetros

  • ptr- Este es el puntero a un bloque de memoria previamente asignado con malloc, calloc o realloc para reasignarlo. Si es NULL, se asigna un nuevo bloque y la función devuelve un puntero al mismo.

  • size- Este es el nuevo tamaño del bloque de memoria, en bytes. Si es 0 y ptr apunta a un bloque de memoria existente, el bloque de memoria apuntado por ptr se desasigna y se devuelve un puntero NULL.

Valor devuelto

Esta función devuelve un puntero a la memoria recién asignada, o NULL si falla la solicitud.

Ejemplo

El siguiente ejemplo muestra el uso de la función 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);
}

Compilemos y ejecutemos el programa anterior que producirá el siguiente resultado:

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