Funzione libreria C - realloc ()

Descrizione

La funzione di libreria C. void *realloc(void *ptr, size_t size) tenta di ridimensionare il blocco di memoria puntato da ptr precedentemente assegnato con una chiamata a malloc o calloc.

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione realloc ().

void *realloc(void *ptr, size_t size)

Parametri

  • ptr- Questo è il puntatore a un blocco di memoria precedentemente allocato con malloc, calloc o realloc da riallocare. Se è NULL, viene allocato un nuovo blocco e la funzione restituisce un puntatore ad esso.

  • size- Questa è la nuova dimensione per il blocco di memoria, in byte. Se è 0 e ptr punta a un blocco di memoria esistente, il blocco di memoria puntato da ptr viene deallocato e viene restituito un puntatore NULL.

Valore di ritorno

Questa funzione restituisce un puntatore alla memoria appena allocata o NULL se la richiesta non riesce.

Esempio

L'esempio seguente mostra l'utilizzo della funzione 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);
}

Compiliamo ed eseguiamo il programma sopra che produrrà il seguente risultato:

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