Actually I was asking myself the exact same thing after I read that the
GCC compiler uses this memory allocation strategy. If you google for
obstack you will find a lot of programs using the obstack libs.
From what I understand upon till now, and please correct me if I am wrong:
obstack is a data stack that is used to create pooled memory allocation.
Memory allocation and deallocation, is said to be much faster because it's
done a pool at a time. Error-handling pools can be preallocated so that
programs can make good recovery's if no more regular memory is available.
The lifespan of a memory pool can be crontrolled like the way the apache
webserver does e.g. `Apache Portable Runtime'.
For me personally I don't think I will use this strategy's because I
simply don't need it, but it is still interesting to look into it
because it requires me to actually think about how memory allocation works
and what the options are.