Problème de retour de fonction avec pointeurs.
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:
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:
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é :aie:). A chaque fois j'ai une erreur de segmentation quand j'affiche les chaine de caractère en dehors de ma fonction.
Yoshio