allows to organize sequential access to underlying memory (FIFO/LIFO)
allocation without metadata being written to the data memory pool except for some static data structures or pointers.
allocation where sensitive allocation metadata is placed in the same memory pool where allocated data reside. list metadata and data constructs a recurrent data structure. i.e.
struct list_data {
/* data */
void** data;
/* next element */
struct list_data* next;
};