Bonjour,
je travaille présentement à l'écriture d'un programme qui, entre autres choses, balaie du code HTML pour en retirer de l'information. Grosso Modo l'utilisateur entre des chaines de caractère, et puis le programme se charge d'aller extraire une page html spécifique, si une certaine condition n'est pas remplie, le programme offre a l'utilisateur d'entrer une nouvelle chaine (toujours de longueur 7)
Donc quand on appelle la fonction on lui transmet une chaine presque complète, et elle ajoute elle même le '\0'
voici le code de la fonction
Et j'ai toujours sois une erreur de segmentation, sois un message du type
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
29
30
31
32
33
34
35
36
37
38
39
40 void completer(int* section,char cours[], char hor[][29][5],char n, char liste_cours[][9], int coursnum) { int i; char url[200]; char ligne[120]; char* pointeur; cours[7]='\0'; CreerURL(url,cours); extraire(url,cours); FILE* code=fopen(cours, "r"); do pointeur=fgets(ligne,120,code); while(pointeur!=NULL && strstr(ligne,"Section ")==NULL); /***************/ if(pointeur==NULL) { int rep=0; fclose(code); printf("le cours %s n'est pas offert! Voulez-vous le changer ? (1/0)\n",cours); scanf("%d",&rep); if(rep==1) { printf("entrez le nouveau code de cours : "); scanf("%s",cours); /*ca semble etre ca qui bogue */ min_maj(nouveau_cours); } else return; } /************************/ parcourir(hor,cours,&(*section),n); verifier_sections(hor,&(*section)); fclose(code); for(i=0;i<8;i++) liste_cours[i][coursnum-1]=cours[i]; return; }
*** glibc detected *** double free or corruption (!prev): 0x0805ecd8 ***
La résolution de ce problème dépasse ma compétence de programmeur amateur
Quelqu'un à une idée?
Partager