ciao a tutti...
ho due stringhe che voglio concatenare, però siccome la stringa 1 è un argv e non la voglio modificare, quindi cosa ho pensato di fare:

codice:
char * dirpath = (char * ) calloc(strlen(argv[2])+5,sizeof(char));
dirpath[0] = '\0';

strcat(dirpath,argv[2]);
strcat(dirpath,"./a");
creo un area di memoria, dirpath, grande quando all'argomento passato da riga di comando + la lunghezza di caratteri ./a + 1 di terminatore (+1 per sicurezza).

fare calloc su sizeof char so che è inutile, però pare che dia maggior chiarezza. Cmq inizializzo dirpath come una stringa vuota e concateno argv[2], e poi la stringa "./a"
fatto ciò arriva il segmentation fault.
Se faccio una sola concatenazione, funziona sia nel primo caso che nel secondo...
Ho sostituito:
strcat(dirpath,argv[2]);

in

strcpy(dirpath,argv[2]);
ma nada!

dove sto sbagliando?
vi ringrazio anticipatamente