High Addresses ---> .----------------------. | Environment | |----------------------| | | Functions and variable are declared | STACK | on the stack. base pointer -> | - - - - - - - - - - -| | | | | v | : : . . The stack grows down into unused space . Empty . while the heap grows up. . . . . (other memory maps do occur here, such . . as dynamic libraries, and different memory : : allocate) | ^ | | | | brk point -> | - - - - - - - - - - -| Dynamic memory is declared on the heap | HEAP | | | |----------------------| | BSS | Uninitialized data (BSS) |----------------------| | Data | Initialized data (DS) |----------------------| | Text | Binary code Low Addresses ----> '----------------------'