Bonjour
j'écrit un programme qui lit un fichier qui a ce format

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
>nom1
acgcctacgactacgcctacgactacgcctacgactacgcctacgactacgcctacgactacgcctacg
actacgcctacgactacgcctacgactacgcctacgactacgcctacgactacgcctacgactacgcct
acgactacgcctacgactacgcctacgactacgcctacgactacgcctacgactacgcctacgactacg
cctacgactacgcctacgactacgcctacgact
>nom2
acgcctacgactacgcctacgactacgcctacgactacgcctacgactacgcctacgactacgcctacg
actacgcctacgactacgcctacgactacgcctacgactacgcctacgactacgcctacgactacgcct
acgactacgcctacgactacgcctacgactacgcctacgactacgcctacgactacgcctacgactac
gcctacgactacgcctacgactacgcctacgactacgcctacgac
mais j'ai des problèmes d'exécution là ou je n'attendais pas après débogage je me rend compte que l'erreur provient de fseek ?!
ça compile mais ça n'exécute pas !

Voici mon code

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
 
#include <stdio.h>
#include <stdlib.h>
 
struct FASTA {
char * comment ;
char * sequence ;
};
 
typedef struct FASTA  tfa ;
 
char* readfasta(char* name){
 
FILE *FIC;
char *chaine,chaine2;
tfa sequence;
int i,j,k,indcom,indseq;
int length,curpos;
char **tab1;
char **tab2;
 
 
length=0;
FIC=fopen(name,"w+");
 
curpos=ftell(FIC); /* je positionne mon curseur */
fseek(FIC,0,SEEK_END); /*je me place à la fin de mon fichier*/
length=ftell(FIC);/*et hop la taille du fichier*/
fseek(FIC,curpos,SEEK_SET);/*je me replace au début*/
 
chaine=(char*)malloc(length*sizeof(char)); /*j'allou pas trop de mémoir puisqu'après je libère*/
fread(chaine,length,1,FIC);
fclose(FIC);
 
sequence.comment=(char*)malloc(length*sizeof(char));/*allocation obligatoire non ? */
sequence.sequence=(char*)malloc(length*sizeof(char));
 
k=0;
 
 
tab1=(char**)malloc(length*sizeof(char*));
tab2=(char**)malloc(length*sizeof(char*));
 
 while(k<length){
 
 while(chaine[i]!='\n'){
sequence.comment[i]=chaine[i];
i++;
}
 
tab1[k]=sequence.comment;
 
 
sequence.comment[i]='\0';
i=i+1;
j=0;
 
 while(i<length && chaine[i]!='>'){
   if (chaine[i]!='\n'){
sequence.sequence[j]=chaine[i];
j++;
   }
i++;
 }
 
tab2[k]=sequence.sequence;
sequence.sequence[j]='\0';
 
k++;
 
 }
tab1[k]='\0';
tab2[k]='\0';
 
 
 for (i=0;i<=k;i++){
 
printf("%s \n",tab1[i]);
printf("%s \n",tab2[i]);
 
 }
/* READ, ALLOCATE AND PUT SEQUENCES IN CHAINE */
 
printf("%d",length);
 
}
 
int main (int argc,char **argv){
 
char* seq;
 
seq = readfasta(argv[1]);
 
return 0;
 
}
Qqu'un pourrait m'aider ?

Merci