PDA

Visualizza la versione completa : HELP! ho dei problemi con il free()


DarioM
23-05-2003, 21:58
Salve, sono alle prime armi e sto scrivendo un client IRC, io salvo il buffer ricevuto dal server al momento del connect in char *buf, allocato con malloc(), nel momento in cui devo ricevere altri dati io uso il free(buf), ma insieme ai nuovi dati ricevuti, in buf sono rimasti i dati precedenti. Siccome il buffer ricevuto dal server posto su pi righe possibile che non veda le altre righe siccome con il free la memoria si libera solo della prima riga lasciando le altre? con il gdb mi da questo

Program received signal SIGSEGV, Segmentation fault.
0x400894dd in __libc_free (mem=0x8049c90) at malloc.c:3142
3142 malloc.c: No such file or directory.
in malloc.c

dovrei usare un altra funzione x allocare? se qualcuno sa come fare...

TheGreatWorld
23-05-2003, 22:21
usa calloc() per allocare e se necessario, quando deallochi pulisci preventivamente la memoria con memset().

bye

Loading