Bonjour,

J'ai fais une fonction qui manipule un tableau de pointeur de chaine de caractère.

Donc je passe en argument de la fonction ce fameux tableaux et je le modifie dans le fonction. Une partie du 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
int pregMatch(const char *pattern, const char *request, char **result)
{
        ...
	if ((result = malloc(sizeof(regmatch_t) * numMatch)) == NULL)
	{
		return EXIT_FAILURE;
	}
        ...
 
	if (...)
	{
	}
	else
	{
		for (i = 0; i < numMatch; i++)
	    {
			....
			if ((result[i] = malloc(length)) == NULL)
			{
				return EXIT_FAILURE;
			}
                        ...
		}
	}
 
        /* Ce code affiche bien les chaine de caractères que je veux */
	for (i = 0; i < numMatch; i++)
        {
		printf("%s\n", result[i]);
	}
 
	return numMatch;
}
L'appel de 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
 
         char *result = NULL
 
         if((rc = pregMatch(pattern, string, &result)) == NOK)
	{
		...
	}
 
	for (i = 0; i < rc; i++)
	{
                /* Pas moyen de récupérer les chaine de caractère ici */
		printf("%d : %s\n", i, ????result??????);
	}
Je n'arrive pas a récupéré les chaine de caractère en dehors de la fonction alors que dedans ca marche nikel. Que mettre à la place des ????????? (j'ai tout essayé mais j'ai pas trouvé ). A chaque fois j'ai une erreur de segmentation quand j'affiche les chaine de caractère en dehors de ma fonction.



Yoshio