avendo studiato un po di C sarei tentato a dirti che quando allochi memoria con malloc sai già la dimensione che intendi riservare (infatti dal man malloc si nota che la definizione della funzione è "void *malloc(size_t size);" ->funzione che accetta un numero size_t e restituisce un puntatore) mentre la funzione free (sempre dal man si ottiene "void free(void *ptr);" ovvero una funzione che non restituisce nulla e accetta in ingresso un puntatore) serve solo a liberare memoria allocata dal puntatore definito in precedenza...Originariamente inviato da CheCk_OUTSIDE Perche' quando devo allocare dello spazio con malloc devo passargli la quantita' di memoria che mi serve, mentre quando vado a deallocarla con free non serve??
non dimentichiamoci che i dati allocati possono essere segmentati in più parti (un po come i dati su disco fisso) e quindi se si andassero a liberare manualmente un blocco di memoria contigua si cancellerebbero anche dati che non dovevano fare quella fine (o almeno in quel momento)...non so se ho reso l'idea...
ps se non hai linux e ti vuoi comunque leggere le varie pagine man basta che vai su google e cerchi "man xxx"
Hasta!