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é :

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;
Merci d'avance.