Fonction de bibliothèque C - realloc ()

La description

La fonction de bibliothèque C void *realloc(void *ptr, size_t size) tente de redimensionner le bloc de mémoire pointé par ptr qui a été précédemment attribué avec un appel à malloc ou calloc.

Déclaration

Voici la déclaration de la fonction realloc ().

void *realloc(void *ptr, size_t size)

Paramètres

  • ptr- C'est le pointeur vers un bloc mémoire précédemment alloué avec malloc, calloc ou realloc à réallouer. Si c'est NULL, un nouveau bloc est alloué et un pointeur vers celui-ci est renvoyé par la fonction.

  • size- Il s'agit de la nouvelle taille du bloc de mémoire, en octets. S'il vaut 0 et que ptr pointe sur un bloc de mémoire existant, le bloc de mémoire pointé par ptr est désalloué et un pointeur NULL est renvoyé.

Valeur de retour

Cette fonction renvoie un pointeur vers la mémoire nouvellement allouée, ou NULL si la demande échoue.

Exemple

L'exemple suivant montre l'utilisation de la fonction 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);
}

Compilons et exécutons le programme ci-dessus qui produira le résultat suivant -

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