Salut a tous,

Je realise une fonction qui traite un char** et me retourne 2 parametres le premier un entier qui me donne le nombre de char* contenu dans mon deuxieme parametre de retour char**

voici le prototype de ma fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
int getPath(int argc, char** argv, char** path);
path est mon deuxieme parametre de retour
Mais quand je veux faire un print de path[i]b dans ma fonction main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
 sizePath = getPath(argc, argv, allPath);
  for(i=0;i<sizePath;i++){
    printf("%s", allPath[i]);}
ma console m'affiche segmentation fault.

Pour info je vous met l'implementation de getPath()
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
 
int getPath(int argc, char** argv, char** path)
{
  int i, j = 0, count = 0;
  int sizePath;
 
  /*recherche du nombre de chemins passe en parametre*/
  /*on commence a argv[1][] car argv[0][] contient le nom
    du programme ce parametre ne nous interesse pas */
 
  for(i = 1; i < argc; i++)
    {
      if(argv[i][0] == '-')
	count++;
    }
  if(count!=0){
  /*initialisation du char** */
  /*le char** est un tableau a 2 dimension */
  /*la 1ere contient des pointeurs sur des char* */
  /*la 2nde contient des pointeurs sur char */
  path = (char**)malloc(sizeof(char*)*count);
  for(i = 0; i < count; i++)
    path[i] = (char*)malloc(sizeof(char)*MAXBUFFER);
 
  /*argc-count = x*/
  for(i=1; i < count+1; i++)
    {
      sizePath = strlen(argv[i]);
      for(j=2; j < sizePath; j++)
	{
	  path[i-1][j-2] = argv[i][j];
	}
      path[i-1][sizePath-2] = '\0';
      printf("%s\n", path[i-1]);
      path[i-1] = standardizeString(path[i-1]);
            printf("%s\n", path[i-1]);
    }}
  return count;
}
merci d'avance pour votre aide