# Memory Introduction

Memory is probably the most important part of any program, memory is allocated, used and destroyed as you program executes.

### Topics to understand here:

1. [heap-and-stack](https://notes.tejpratapsingh.com/_/cpp/memory/heap-and-stack "mention")
2. [copy-constructor](https://notes.tejpratapsingh.com/_/cpp/code/classes/copy-constructor "mention")
3. [pointers](https://notes.tejpratapsingh.com/_/cpp/memory/pointers "mention")
4. [smart-pointers](https://notes.tejpratapsingh.com/_/cpp/memory/pointers/smart-pointers "mention")
   1. [unique-pointer](https://notes.tejpratapsingh.com/_/cpp/memory/pointers/smart-pointers/unique-pointer "mention")
   2. [shared-pointer](https://notes.tejpratapsingh.com/_/cpp/memory/pointers/smart-pointers/shared-pointer "mention")
   3. [weak-pointer](https://notes.tejpratapsingh.com/_/cpp/memory/pointers/smart-pointers/weak-pointer "mention")
