Bonjour,

j'aimerai faire un tableau de struct, mais j'ai du mal.

voici ma struct :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
typedef struct _R_{
	char * ID;
	char * seq;
	char * qualite;
}Read;
j'aimerai faire une fonction qui me rempli le tableau de struct et donc la struct en même temps. Une fois le tableau rempli, elle me renvoie le tableau de struct. Voici ma fonction :

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
Read * lireFastq(char * file, int taille){
	char phrase[36]; 
	char * read;
	Read * tabRead = (Read*)malloc(1000*sizeof(Read));
	FILE *f = fopen(file, "r");
	int i=0;
	int retour;
	int bonId;
	int bonQualite;
	regex_t preg;
	if(f!=NULL){
		while (fgets(phrase, 36, f) != NULL){ 
			regcomp(&preg, "^@", REG_EXTENDED | REG_NOSUB);
			bonId=regexec(&preg, phrase, 0, 0, 0);
			if(!bonId){
				read=substring(phrase, 0, strlen(phrase)-1);
				tabRead[i].ID=read+1;
				printf("id : %s\n", read+1);
			}
			regcomp(&preg, "^[A-Z]{35}", REG_EXTENDED | REG_NOSUB);
			retour=regexec(&preg, phrase, 0, 0, 0);
			if(!retour){
				read=substring(phrase, 0, taille);
				tabRead[i].seq=read;
				printf("seq : %s\n", read);
			}
			regcomp(&preg, "^[A-Z]{10}@@@", REG_EXTENDED | REG_NOSUB);
			bonQualite=regexec(&preg, phrase, 0, 0, 0);
			if(!bonQualite){
				printf("qualite : %s\n", phrase);
				tabRead[i].qualite=phrase;
			}
			i++;
			tabRead[i]=r;
		}
		fclose(f);
	}
	else{
		printf("Impossible d'ouvrir le fichier %s.\n", file);
	}
	return tabRead;
}
Ceci me renvoie une erreur de segmentation.

merci.

Alaninho