J'essaye d'écrire une fonction qui décale tous les éléments d'un tableau de chaînes de un.Décaler toutes les chaînes dans le tableau (problème avec realloc)
void shift_frags(char **frags, int frag_len, int cur)
{
int i;
for(i = cur; i < frag_len-1; i++)
{
if(strlen(frags[i+1]) > strlen(frags[i]))
frags[i] = realloc(frags[i], strlen(frags[i+1])*sizeof(char));
strcpy(frags[i], frags[i+1]);
}
free(frags[frag_len-1]);
}
Cela me donne l'erreur: « realloc(): taille suivante invalide: ... » Chaque tableau est alloué dynamiquement à la taille d'une chaîne lue à partir d'un fichier. Ne devrais-je pas être en mesure d'allouer dynamiquement de nouvelles tailles de tableau puisque mon paramètre frags est un tableau de pointeurs?
Merci
Le calcul de sizeof (char) consiste simplement à ajouter de l'obfuscation au code. Il est toujours égal à 1. – unwind