lstCC = (TypVoisins **)realloc(lstCC, (sizeof(lstCC)+1) * sizeof(TypVoisins *));
Je ne comprends pas ce que tu cherches à faire ici. Tu veux allouer une taille de mémoire correspondant à la taille d'un pointeur, incrémentée de 1, multipliée par la taille d'un autre pointeur, ce qui fait (4+1)*4. Quelle en est la signification ? 
Deuxièmement, ce code est susceptible de provoquer une fuite de mémoire. Il faut stocker le retour de realloc dans un pointeur temporaire, car si la fonction échoue, elle renvoie NULL. Or, là, tu écrases lstCC directement, sans chercher à savoir si realloc a réussi ou non. Si la fonction ne renvoie pas NULL, c'est qu'elle n'a pas échoué ; là, tu peux alors écraser l'ancienne valeur.
Le cast void* vers type_quelconque*, et vice versa, est implicite en C. Cela ne sert donc à rien de caster.
Partager