Bonjour,

Comme vous avez pu le lire dans le titre une question me turlupine sur la fonction realloc !!!

Vous pouvez voir dans ce post https://www.developpez.net/forums/d1...loc-ca-marche/ que je propose une interprétation de la fonction realloc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
void *realloc(void *blocACopier, size_t nouvelleTaille){
  void *tmp=malloc(nouvelleTaille); //allocation d'une nouvelle zone mémoire
  if(tmp==NULL){ //allocation raté
    return NULL;
  }
  memcopy(tmp, blocACopier, ancienneTaille); //copie
  free(blocACopier); //libération
  return tmp;
}
On peut y voir que ancienneTaille ne fait pas parti des paramètres et est déterminée par la fonction elle même. Or après plusieurs recherche obtenir la taille d'une zone mémoire allouée dynamiquement avec la bibliothèque standard est impossible, seulement realloc y arrive très bien !

D'où ma question : comment elle fait?