J'essaie de lire une ligne d'un fichier caractère par caractère et de placer les caractères dans une chaîne; ici » mon code:La ligne de lecture du fichier provoque un plantage
char *str = "";
size_t len = 1; /* I also count the terminating character */
char temp;
while ((temp = getc(file)) != EOF)
{
str = realloc(str, ++len * sizeof(char));
str[len-2] = temp;
str[len-1] = '\0';
}
Le programme plante sur la ligne realloc
. Si je déplace cette ligne en dehors de la boucle ou si je la commente, elle ne plante pas. Si je ne fais que lire les caractères et les envoyer à stdout, tout fonctionne correctement (c'est-à-dire que le fichier est ouvert correctement). Où est le problème?
Et je vois que vous avez corrigé le problème de la question originale. Très bien. –