è probabile (ste stringhe C mi stanno facendo dannare, mi ero abituato alla comodità di "string" di C++
), però come mai allora viene stampata per bene? Che errori potrei aver fatto?
comunque vediamo un po':
codice:
int un_intero;
char * buff;
char altra_stringa[1024], altra_stringa2[25], n[7];
//...
strcpy(altra_stringa, "valore_uno\0");
strcpy(altra_stringa2, "valore_due\0");
sprintf(n, "%i", un_intero);
n[6] = '\0';
strcat(altra_stringa2, n);
//...
buff = malloc(strlen(...)+...); // alloco spazio per le stringhe che dovrò concatenarci, sovradimensionando un po'
if(buff == NULL) /* errore allocazione*/;
// confeziono in buff una stringa, che mi serve per un'altra cosa. Lo riporto perchè ho paura che sia per questi rigiri vari che faccio su buff che qualcosa va storto...
// buff è una var che uso diverse volte anche in altri punti della funzione per operazioni su stringhe e con la memoria dinamica)
strcpy(buff,"stringa1 \0");
strcat(buff, altra_stringa);
strcat(buff, "stringa2\0");
// <uso la stringa così costruita>
// ora voglio riusare buff per costruire la stringa che da problemi
strcpy(buff, altra_stringa_2);
strcat(buff, "/\0");
strcat(buff, altra_stringa);
strcat(buff, "valore_3\0");
printf("%s \n", buff); // stampata correttamente
ret = stat(buff, &info); // ritorna -1, errno: No Such File or Directory
free(buff);
(scusate per questa ignobile porcheria)