Bonjour à tous,
Je me trouve devant un problème de segmentation donc de mémoire...
Je vous explique :
Mon programme prend plusieurs arguments et je souhaiterais qu'une partie de ces arguments soient copiées dans un tableau de tableau de char (i.e char** tab).
Seulement lorsque j'essai de strcpy l'argument qui est une string, dans mon tab, j'obtiens une erreur de segmentation.
Voici le code pour plus de clarté :
Merci d'avance.
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 int main(int argc, char* argv[]) { int k,i,j,g =1; // EDIT j = 1 (oubli) char ** tab = malloc(argc*sizeof(char*)); for(i=1;i<argc;i++){ tab[i]=malloc(50*sizeof(char)); } for (g=1;g<argc;g++) // on commence a 1 car argv[0] correspond au nom de la fonction. { // on parcourt tous les arguments if (strcmp( "-a", argv[g])==0){ // idem // tant qu'on ne rencontre pas de signe '-' qui signifie une option , on continue (cas ou il y a plusieurs arguments while(strncmp(argv[g+j],"-",1)){ strcpy(tab[j-1],argv[g+j]); // ERREUR PROBABLE ICI j++; } printf("%s %s %s", tab[0],tab[1],tab[2]); return 0;
Partager