Cursos /
C++ Pointers and References
Introduction to Memory
Memory plays a crucial role in storing and managing data during the execution of a program. Understanding how memory is managed is fundamental to writing optimized, efficient and error free code.
Memory can broadly be categorized into two main areas:
- The Stack: is a region of memory that stores local variables and function call information. The stack is managed by the compiler and automatically allocates and deallocates memory for variables as they come in and out of scope.
- The Heap: is a dynamic and more flexible memory area. It is used for allocating memory at runtime, enabling the creation of data structures with a size that is not known until the program is executed.
Pros | ||
Automatic Management | Dynamic Allocation | |
Faster Access | Variable Size | |
Deterministic Lifetime | Persistent Lifetime | |
No Explicit Deallocation | Suitable for Large Data Structures | |
Quick and Predictable Allocation | Flexible Usage | |
Cons | ||
Limited Size | Manual Management | |
Limited Flexibility | Slower Access and Deallocation | |
Variables Scoped | Risk of Memory Leaks | |
Potential for Stack Overflow | Fragmentation Issues | |
Not Suitable for Large Data Structures | Increased Complexity in Code |