Probleme de strcpy et de char**
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:
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.