Originariamente inviato da CheCk_OUTSIDE
quello che mi interessava sapere e' perche' e' stata fatta una scelta del genere?
#define SUPPOSIZIONE_DA_VERIFICARE 1
#ifdef SUPPOSIZIONE_DA_VERIFICARE
Che io sappia, non c'e` molta scelta nell'implementazione di un'allocatore di memoria per blocchi di dimensione variabile. Nel senso, la struttura dati di solito e` una variazione sul tema della lista di elementi, dove ogni elemento memorizza la coppia
indirizzo_base_area, dimensione_area.
Utilizzando questo schema per l'allocatore, al deallocatore non rimane molta liberta` di manovra, nel senso che questo libera tutto il chunk indicato (e allora l'informazione sulla dimensione e` ridondante), oppure ne libera solo una parte. La prima scelta e` quella piu` semplice da gestire, presumo che proprio questa semplicita` abbia influenzato gli stesori della libreria standard del C.
#endif // SUPPOSIZIONE_DA_VERIFICARE

Per Ikitt.. dove posso trovare letteratura al riguardo??
Google e` abbastanza una miniera, anche se la maggior parte della documentazione si sofferma piu` sugli studi delle prestazioni degli allocatori in se piuttosto che sulla teoria su cui, mi pare, non e` che ci sia un'enormita di cui scrivere.
Un esempio di un paio di allocatori (che dovrei studiare meglio, mannaggia ):
http://samba.org/ftp/unpacked/junkcode/talloc/
http://gee.cs.oswego.edu/dl/html/malloc.html