Dynamic Memory Allocation
-  Ensure memory allocated with malloc is always freed
 
-  Pointers do NOT have to initialized with malloced memory 
 
-  When objects are shared memory is often managed with a use count and a garbage collector 
 
-  alloca is sometimes used to allocate dynamic data on the stack (non-portable) 
 
-  Structures with a variable-sized array element are sometimes allocated in a single block