1. Stack - contains local addresses and return addresses 2. Heap - used for dynamic memory allocation 3. Text or Code - contains compiled code 4. Data - contains static and global variable decleared in the program.