Garbage collection with pointers to individuals cells
In the heap model in which garbage collectors usually operate, the heap is an array of cells. Each cell contains 
either a non-pointer, to be ignored, or a pointer to a block of cells somewhere in the heap, called an object. The 
objects do not overlap. In addition, there are a bunch of cells not in the heap, called the root set. It is possible to 
determine from a cell whether it contains a pointer or not, and it is possible to determine from a pointer how long 
the object pointed to is.