Modification de chaine passée en paramètre non prise en compte
Fermé
Utilisateur anonyme
-
Modifié par orinym le 10/12/2013 à 14:46
Utilisateur anonyme - 10 déc. 2013 à 18:05
Utilisateur anonyme - 10 déc. 2013 à 18:05
A voir également:
- Modification de chaine passée en paramètre non prise en compte
- Netflix paramètre compte - Guide
- Suivi de modification word - Guide
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Supprimer compte instagram - Guide
1 réponse
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 10/12/2013 à 16:53
Modifié par [Dal] le 10/12/2013 à 16:53
Salut orinym,
C'est sympa de poster ton code, mais c'est un peu touffu. Cela serait mieux de cerner le problème et de poster juste ce qu'il faut de code pour montrer ton problème.
A ce propos, stp, dis ce que tu mets exactement dans ton main pour faire un test mettant en évidence le problème, qu'est-ce que tu mets en entrée, et qu'est-ce que tu attends en sortie ?
Bref, fais nous un main de test.
Dal
C'est sympa de poster ton code, mais c'est un peu touffu. Cela serait mieux de cerner le problème et de poster juste ce qu'il faut de code pour montrer ton problème.
A ce propos, stp, dis ce que tu mets exactement dans ton main pour faire un test mettant en évidence le problème, qu'est-ce que tu mets en entrée, et qu'est-ce que tu attends en sortie ?
Bref, fais nous un main de test.
Dal
10 déc. 2013 à 18:05
J'ai mis le code, mais j'ai donné des indications sur la nature probable du soucis plus haut.
J'ai également eu l'avis d'un camarade.
Pour le problème de segfault avec les crochets, il faut apparemment utiliser la notation et non pas la notation (équivalente apparemment à )
En ce qui concerne le fait que le str passé en paramètre n'est pas modifié, il semblerait que le problème vienne du malloc sur l'adresse de str, puis sur ce qui est pointé par cette adresse, et non juste sur ce qui est contenu dans cette adresse (le char *).
Cette fonction est censée lire une ligne contenue dans un fichier et en mettre le contenu dans le char * dont l'adresse est passée en paramètre, puis retourner un entier parmi 1, -1, ou 0, selon le succès ou l'échec de la lecture, et l'arrivée en fin de fichier.
Je dois donc avoir dans mon char * (dont je passe l'adresse en paramètre) le contenu d'une ligne d'un fichier (dont le file descriptor est également passé en paramètre) une fois que la fonction a fait son boulot.
Seulement le char * est toujours vide après le passage de la fonction. NULL même!
La lecture du char * dans le main je la fait avec printf ou avec une fonction maison à base de write (j'ai testé avec les deux).
Avec l'aide de mon camarade, j'ai des pistes (cf plus haut) pour essayer de corriger, je vous tiendrai au courant.
Cdt, orinym