Bonsoir !
Voici mon problème: on se donne un fichier que je vous écris ci dessous :
J'aimerais transformer ce fichier texte en une unique chaîne de caractère et pour cela j'ai écris cette fonction :1
7
1 3 5 8 6 7 4 3 2 1 9 6 4 3 6 2
+*++**-///*-/-+-*-*++++-
2
20
Sauf que lorsque je lance valgrind, j'obtiens ==103== Invalid write of size 1, j'avais essayé avec la fonction strcat mais j'ai une erreur du même registre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void all_in_one(int max_line, char *buffer,FILE* f){ char *chaine=malloc(sizeof(char)*max_line); for(int i=0,n=0;i<6;i++){ fgets(chaine,max_line,f); sprintf(buffer+n,"%s\0",chaine); n=n+strlen(chaine); } fseek(f, 0, SEEK_SET); free(chaine); return; }
Quand j'essaye de cibler mon problème en ne récupérant qu'une ligne particulière j'ai exactement le même soucis Invalid write of size 1 :
Je m'en remets à vous, merci d'avoir pris le temps de me lire !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void give_me_operator(FILE* f,int max_line,char *p){ char chaine[max_line]; for(int i=0;i<4;i++){ fgets(chaine, max_line, f); } fseek(f, 0, SEEK_SET); strcpy(p, chaine); return; }
Partager