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:
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).codice:char * dirpath = (char * ) calloc(strlen(argv[2])+5,sizeof(char)); dirpath[0] = '\0'; strcat(dirpath,argv[2]); strcat(dirpath,"./a");
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