Tu écris du code que tu ne comprends pas ?
void* Nouveau = realloc(Planete.Nom,(strlen(Nom)+1)*sizeof(char))
pourquoi void * ? sizeof (char) vaut toujours 1. Cette ligne s'écrit :
char* Nouveau = realloc(Planete.Nom,strlen(Nom)+1)
La réallocation peut déplacer la zone allouée. Elle peut également échouer, c'est pourquoi, on conserve précieusement l'adresse de l'ancienne zone Planete.Nom et on place la nouvelle adresse dans une autre variable Nouveau. Si la réallocation réussi, l'adresse de la (nouvelle) zone allouée est placée dans Planete.Nom
Planete.Nom = (char*)Nouveau;
le (char *) est inutile
on recopie ensuite nom dans cette nouvelle zone
Partager