Saluti.
>
> Perchè questo pezzo di codice:
[...]
> Mi ritorna
> "chown administrator ciao"
> Invece di "ciao" e basta?
Perche' non inizializzi le variabili.
Strcat va alla fine della stringa (cercando il primo '\0') e appiccica.
> Come devo fare per liberare veramente la memoria allocata per
> la stringa, per
> poterla riutilizzare?
E' veramente libera, ma piena di porcate.
{
char *systring;
systring = (char *) malloc (500);
if(!systring) { perror("...."); exit(1); } /* Check errors */
*systring='\0'; /* init */
strcat (systring, "chown administrator ");
free (systring);
systring = (char *) malloc (500);
if(!systring) { perror("...."); exit(1); } /* Check errors */
*systring='\0'; /* init */
strcat(systring,"ciao");
printf("%s\n", systring);
}
Potrsti anche usare calloc, ma perche' scrivere 500 zeri se ne basta uno?
Cheers,
alf
|