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 :
path est mon deuxieme parametre de retour
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int getPath(int argc, char** argv, char** path);
Mais quand je veux faire un print de path[i]b dans ma fonction main
ma console m'affiche segmentation fault.
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]);}
Pour info je vous met l'implementation de getPath()
merci d'avance pour votre aide
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; }
Partager