Stack Memory | Heap Memory |
| Memory allocated is in LIFO fashion | No specific order. Is random. |
| Allocation and de-allocation of memory is automatic | Allocation and de-allocation of memory is manual |
| Locality of reference is excellent | Locality of reference is adequate |
| Memory allocated is of fixed size and is not flexible | Resizing is possible |
| Space is efficiently managed by CPU, memory will not be fragmented | No guaranteed efficient use of space. Memory may be fragmented over time as blocks of memory are allocated, then freed. |
| Implementation is hard | Implementation is easy |
| Access time is faster | Access time is slower |