erlug
[Top] [All Lists]

RE: [Erlug] Problema con free in C.

To: "'erlug@xxxxxxxxxxxxxx'" <erlug@xxxxxxxxxxxxxx>
Subject: RE: [Erlug] Problema con free in C.
From: Alessandro Forghieri <Alessandro.Forghieri@xxxxxxxxxx>
Date: Mon, 18 Mar 2002 11:12:23 +0100
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


<Prev in Thread] Current Thread [Next in Thread>