Hello,
J'ai cette superbe erreur qui apparait lors de l'execution de mon programme. Voici le bout de code a prioris concerné (réduit au minimum vital):
Voila en gros, le code s'arrete au FLAG, dans le sens ou je fait un printf avant le return ca fonctionne, mais dés que je retourne dans ma fonction appelante ca plante. Il termine donc correctement tout ce qu'il y a avant (a prioris).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 int add_list_data(char *str_list_file, s_params *par) { FILE *f; int n, nread = 0, status ; char buf[150], apobuf[10], ligbuf[50], complexbuf[50]; f = fopen(str_list_file, "r") ; if(f) { while(fgets(buf, 150, f)) { n = par->nfiles ; status = sscanf(buf, "%s %s %s", apobuf, complexbuf, ligbuf) ; if(status == 3) { nread += add_prot(apobuf, complexbuf, ligbuf, par) ; } } } // FLAG return(nread) ; }
En enlevant le sscanf, plus aucun problème. J'en ai déduit que ca venait donc du sscanf. Or je ne comprends pas pourquoi: tous mes buffers sont largements assez grands pour contenir mes diverses lectures (fichiers et colonnes). Bref je n'ai aucun problème, en théorie, de dépassement: Mon fichier de test contiens trois lignes ayant trois colonnes de chacunes exactement 5 caractères).
Voila si quelqu'un a une idée...
Merci d'avance![]()
Partager