Dynamic Memory Allocation (new and delete) in C++ Notes | Basic Computer Engineering | RGPV BTech First Year
Dynamic Memory Allocation (new and delete) in C++ Notes | Basic Computer Engineering | RGPV BTech First Year
Dynamic Memory Allocation (new and delete) in C++
C++ рдореЗрдВ Dynamic Memory Allocation (DMA) рдПрдХ рдРрд╕реА рддрдХрдиреАрдХ рд╣реИ рдЬрд┐рд╕рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ Program рдХреЗ Execution рдХреЗ рджреМрд░рд╛рди рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ Memory Allocate рддрдерд╛ Release рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред Static Variables рдХреА рддрд░рд╣ Memory Compile Time рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА, рдмрд▓реНрдХрд┐ Runtime рдкрд░ Allocate рд╣реЛрддреА рд╣реИред C++ рдореЗрдВ Dynamic Memory Allocation рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд░реВрдк рд╕реЗ new рддрдерд╛ delete Operators рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Dynamic Memory Allocation рдмрдбрд╝реЗ Programs, Data Structures, Object Oriented Programming рддрдерд╛ Runtime рдореЗрдВ Variable Size Data рдХреЛ Handle рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред RGPV B.Tech рдХреА рдкрд░реАрдХреНрд╖рд╛рдУрдВ рдореЗрдВ new Operator, delete Operator, Heap Memory рддрдерд╛ Memory Leak рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рд╢реНрди рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рддреЗ рд╣реИрдВред
тЖУ
Memory Required
тЖУ
new Operator
тЖУ
Heap Memory Allocated
тЖУ
delete Operator
тЖУ
Memory Released
Introduction to Dynamic Memory Allocation
рдЬрдм Program рдХреЗ Compile рд╣реЛрдиреЗ рдХреЗ рд╕рдордп рдпрд╣ рдЬреНрдЮрд╛рдд рди рд╣реЛ рдХрд┐ рдХрд┐рддрдиреА Memory рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рддрдм Runtime рдкрд░ Memory Allocate рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ Dynamic Memory Allocation рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
Dynamic Memory Allocation Programmer рдХреЛ Memory рдХрд╛ Efficient рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Memory рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрдбрд╝рдиреЗ рдкрд░ Allocate рд╣реЛрддреА рд╣реИ рддрдерд╛ рдХрд╛рд░реНрдп рдкреВрд░реНрдг рд╣реЛрдиреЗ рдкрд░ рдЙрд╕реЗ Release рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
What is Dynamic Memory?
Dynamic Memory рд╡рд╣ Memory рд╣реЛрддреА рд╣реИ рдЬреЛ Program рдХреЗ Execution рдХреЗ рджреМрд░рд╛рди Allocate рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ Memory рд╕рд╛рдорд╛рдиреНрдпрддрдГ Heap Memory рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрддреА рд╣реИ рддрдерд╛ рдЗрд╕рдХрд╛ Allocation рдФрд░ Deallocation Programmer рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Need of Dynamic Memory Allocation
- Runtime рдкрд░ Memory Allocate рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
- Variable Size Data рдХреЛ Store рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
- Memory рдХрд╛ Efficient рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
- Large Data Structures рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
- Linked List, Tree рддрдерд╛ Graph рдЬреИрд╕реА Structures рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
- Dynamic Arrays рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
- Object Oriented Programming рдореЗрдВ Dynamic Objects рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
- Memory Wastage рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
Static Memory vs Dynamic Memory
| Static Memory | Dynamic Memory |
|---|---|
| Compile Time рдкрд░ Allocate рд╣реЛрддреА рд╣реИред | Runtime рдкрд░ Allocate рд╣реЛрддреА рд╣реИред |
| Size рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрддреА рд╣реИред | Size Runtime рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред |
| Stack Memory рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред | Heap Memory рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред |
| Automatic Deallocation рд╣реЛрддрд╛ рд╣реИред | Programmer рдХреЛ delete рджреНрд╡рд╛рд░рд╛ Release рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред |
Heap Memory
Heap Memory рд╡рд╣ Memory Area рд╣реИ рдЬрд╣рд╛рдБ Dynamic Memory Allocate рд╣реЛрддреА рд╣реИред Heap Memory рдХрд╛ Allocation рдПрд╡рдВ Deallocation Programmer рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ Allocated Memory рдХреЛ рд╕рдордп рдкрд░ Release рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛, рддреЛ Program рдореЗрдВ Memory Leak рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
Stack Memory
Stack Memory Local Variables, Function Calls рддрдерд╛ Automatic Variables рдХреЛ Store рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИред Function рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ Stack Memory рд╕реНрд╡рддрдГ Release рд╣реЛ рдЬрд╛рддреА рд╣реИред
Difference between Heap Memory and Stack Memory
| Stack Memory | Heap Memory |
|---|---|
| Automatic Memory Management | Manual Memory Management |
| Fast Access | Relatively Slow Access |
| Function Calls рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА | Dynamic Allocation рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА |
| Limited Size | Large Size Available |
new Operator
new Operator рдХрд╛ рдЙрдкрдпреЛрдЧ Runtime рдкрд░ Heap Memory рд╕реЗ Memory Allocate рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ Memory Allocate рдХрд░рдХреЗ рдЙрд╕рдХрд╛ Address Return рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕рд╛рдорд╛рдиреНрдпрддрдГ Pointer Variable рдореЗрдВ Store рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Syntax of new Operator
рдКрдкрд░ рджрд┐рдП рдЧрдП Syntax рдореЗрдВ new Operator Heap Memory рдореЗрдВ рдПрдХ Variable рдХреЗ рд▓рд┐рдП Memory Allocate рдХрд░рддрд╛ рд╣реИ рддрдерд╛ рдЙрд╕рдХрд╛ Address Pointer Variable рдореЗрдВ Store рдХрд░рддрд╛ рд╣реИред
delete Operator
delete Operator рдХрд╛ рдЙрдкрдпреЛрдЧ new Operator рджреНрд╡рд╛рд░рд╛ Allocate рдХреА рдЧрдИ Memory рдХреЛ Release рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ Memory рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЙрд╕реЗ Release рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛, рддреЛ Program рдореЗрдВ Memory Leak рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
Dynamic Memory рдХрд╛ рдЙрдЪрд┐рдд Management рдХрд┐рд╕реА рднреА Efficient Program рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЬрд┐рд╕ Memory рдХреЛ new рджреНрд╡рд╛рд░рд╛ Allocate рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЙрд╕реЗ рдХрд╛рд░реНрдп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ delete рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд╢реНрдп Release рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
Syntax of delete Operator
рдпрджрд┐ Dynamic Array Allocate рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ, рддреЛ рдЙрд╕реЗ Release рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП delete[] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Allocating a Single Variable Dynamically
рдХрд┐рд╕реА рдПрдХ Variable рдХреЗ рд▓рд┐рдП Runtime рдкрд░ Memory Allocate рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП new Operator рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ ptr Heap Memory рдореЗрдВ Allocate рдХрд┐рдП рдЧрдП Integer Variable рдХрд╛ Address Store рдХрд░рддрд╛ рд╣реИред
Allocating Arrays Dynamically
рдпрджрд┐ Program рдХреЗ Execution рдХреЗ рджреМрд░рд╛рди Array рдХрд╛ Size рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛ, рддреЛ Dynamic Array рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Dynamic Array рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ Memory рдХреЛ Release рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди Statement рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
Allocating Objects Dynamically
C++ рдореЗрдВ Objects рдХреЛ рднреА Runtime рдкрд░ Dynamically Create рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рддрдХрдиреАрдХ Object Oriented Programming рддрдерд╛ Large Applications рдореЗрдВ рдЕрддреНрдпрдВрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрддреА рд╣реИред
Dynamic Object рдХреЗ Members рдХреЛ Access рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП -> Operator рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Dynamic Memory with Classes
Class рдХреЗ Objects рдХреЛ Dynamic Memory рдореЗрдВ Store рдХрд░рдиреЗ рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдиреБрд╕рд╛рд░ Objects Create рдПрд╡рдВ Destroy рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ Technique Banking Software, Student Management System рддрдерд╛ Game Development рдЬреИрд╕реА Applications рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИред
Memory Leak
рдЬрдм Program new Operator рджреНрд╡рд╛рд░рд╛ Memory Allocate рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЙрд╕реЗ delete рджреНрд╡рд╛рд░рд╛ Release рдирд╣реАрдВ рдХрд░рддрд╛, рддрдм Heap Memory рд▓рдЧрд╛рддрд╛рд░ Occupied рд░рд╣рддреА рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ Memory Leak рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
тЖУ
Memory Allocated
тЖУ
delete Not Used
тЖУ
Memory Leak
Dangling Pointer
рдпрджрд┐ рдХрд┐рд╕реА Pointer рджреНрд╡рд╛рд░рд╛ Refer рдХреА рдЬрд╛ рд░рд╣реА Memory рдХреЛ delete рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП рд▓реЗрдХрд┐рди Pointer рдореЗрдВ рдЕрднреА рднреА рд╡рд╣реА рдкреБрд░рд╛рдирд╛ Address рдореМрдЬреВрдж рд░рд╣реЗ, рддреЛ рдРрд╕реЗ Pointer рдХреЛ Dangling Pointer рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
Memory Release рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж Pointer рдХреЛ NULL рдпрд╛ nullptr рдкрд░ Set рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫреА Programming Practice рдорд╛рдиреА рдЬрд╛рддреА рд╣реИред
Best Practices while Using Dynamic Memory
- рдЬрд┐рд╕ Memory рдХреЛ new рд╕реЗ Allocate рдХрд░реЗрдВ, рдЙрд╕реЗ рд╣рдореЗрд╢рд╛ delete рд╕реЗ Release рдХрд░реЗрдВред
- Dynamic Array рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ delete[] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
- Memory Release рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж Pointer рдХреЛ NULL рдпрд╛ nullptr рдкрд░ Set рдХрд░реЗрдВред
- рдЕрдирд╛рд╡рд╢реНрдпрдХ Dynamic Allocation рд╕реЗ рдмрдЪреЗрдВред
- Memory Leak рддрдерд╛ Dangling Pointer рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд Memory Management рдЕрдкрдирд╛рдПрдБред
- рдЬрд╣рд╛рдБ рд╕рдВрднрд╡ рд╣реЛ, Modern C++ рдореЗрдВ Smart Pointers рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
Difference between new/delete and malloc()/free()
| new / delete | malloc() / free() |
|---|---|
| C++ Operators рд╣реИрдВред | C Library Functions рд╣реИрдВред |
| Constructor рдПрд╡рдВ Destructor Automatically Call рд╣реЛрддреЗ рд╣реИрдВред | Constructor рддрдерд╛ Destructor Call рдирд╣реАрдВ рд╣реЛрддреЗред |
| Type Casting рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреАред | Type Casting рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред |
| Object Oriented Programming рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрддред | рдореБрдЦреНрдпрддрдГ C Language рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред |
Program to Allocate a Single Variable Dynamically
рдЗрд╕ Program рдореЗрдВ new Operator Heap Memory рдореЗрдВ рдПрдХ Integer Variable рдХреЗ рд▓рд┐рдП Memory Allocate рдХрд░рддрд╛ рд╣реИред Pointer ptr рдЙрд╕ Memory рдХрд╛ Address Store рдХрд░рддрд╛ рд╣реИ рддрдерд╛ рдЕрдВрдд рдореЗрдВ delete рджреНрд╡рд╛рд░рд╛ Memory Release рдХрд░ рджреА рдЬрд╛рддреА рд╣реИред
Program to Allocate an Array Dynamically
рдпрд╣ Program Runtime рдкрд░ Dynamic Array рдмрдирд╛рддрд╛ рд╣реИред Array рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж delete[] рджреНрд╡рд╛рд░рд╛ Heap Memory Release рдХреА рдЬрд╛рддреА рд╣реИред
Program to Create Object Dynamically
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ Class рдХрд╛ Object Runtime рдкрд░ Create рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред Object рдХреЗ Members рдХреЛ Access рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП -> Operator рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрдерд╛ рдЕрдВрдд рдореЗрдВ Memory Release рдХрд░ рджреА рдЧрдИ рд╣реИред
Real Life Applications of Dynamic Memory Allocation
| Application | Description |
|---|---|
| Linked List | Nodes Runtime рдкрд░ Create рдПрд╡рдВ Delete рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред |
| Tree Data Structure | Hierarchy рдХреЗ рдЕрдиреБрд╕рд╛рд░ Dynamic Nodes Allocate рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред |
| Graph Applications | Dynamic Vertices рддрдерд╛ Edges рдХреЗ рд▓рд┐рдП Memory Allocate рдХреА рдЬрд╛рддреА рд╣реИред |
| Game Development | Characters, Objects рддрдерд╛ Resources Runtime рдкрд░ Create рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред |
| Database Management System | Records рддрдерд╛ Buffers рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдиреБрд╕рд╛рд░ Memory Allocate рд╣реЛрддреА рд╣реИред |
| Operating System | Process рддрдерд╛ Memory Management рдореЗрдВ Dynamic Allocation рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред |
Advantages of Dynamic Memory Allocation
- Runtime рдкрд░ Memory Allocate рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
- Memory Wastage рдХрдо рд╣реЛрддреА рд╣реИред
- Variable Size Data рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ Handle рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- Large Data Structures рдХреЛ Efficient рддрд░реАрдХреЗ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- Object Oriented Programming рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдВрдд рдЙрдкрдпреЛрдЧреА рд╣реИред
- Program рдЕрдзрд┐рдХ Flexible рдПрд╡рдВ Scalable рдмрдирддрд╛ рд╣реИред
- Memory рдХрд╛ Efficient Utilization рд╣реЛрддрд╛ рд╣реИред
- Dynamic Applications рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред
Disadvantages of Dynamic Memory Allocation
- Improper Memory Management рд╕реЗ Memory Leak рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
- Dangling Pointer рдХреА рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред
- Heap Allocation Stack рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдорд╛ рд╣реЛрддрд╛ рд╣реИред
- Manual Memory Management рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
- рдЧрд▓рдд Pointer Handling рд╕реЗ Runtime Errors рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
Viva Questions
- What is Dynamic Memory Allocation?
- What is Heap Memory?
- Differentiate between Heap Memory and Stack Memory.
- What is the use of the new Operator?
- What is the use of the delete Operator?
- What is a Memory Leak?
- What is a Dangling Pointer?
- Why is delete[] used for Arrays?
- Differentiate between new/delete and malloc()/free().
- Give any two applications of Dynamic Memory Allocation.
Exam Oriented Important Questions
- Define Dynamic Memory Allocation with suitable example.
- Explain the working of new and delete Operators.
- Differentiate between Static Memory and Dynamic Memory.
- Differentiate between Heap Memory and Stack Memory.
- Write a C++ Program to Allocate Memory Dynamically.
- Write a Program to Create Dynamic Arrays using new.
- Explain Memory Leak and Dangling Pointer.
- Differentiate between new/delete and malloc()/free().
- Discuss the advantages and disadvantages of Dynamic Memory Allocation.
- Explain the real-life applications of Dynamic Memory Allocation.
Conclusion
Dynamic Memory Allocation (DMA) C++ рдХрд╛ рдПрдХ рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг Feature рд╣реИ рдЬреЛ Program рдХреЛ Runtime рдкрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдиреБрд╕рд╛рд░ Memory Allocate рдПрд╡рдВ Release рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред new Operator Heap Memory рд╕реЗ Memory Allocate рдХрд░рддрд╛ рд╣реИ рдЬрдмрдХрд┐ delete Operator рдЙрд╕ Memory рдХреЛ Release рдХрд░рддрд╛ рд╣реИред рдЙрдЪрд┐рдд Memory Management рджреНрд╡рд╛рд░рд╛ Memory Leak рддрдерд╛ Dangling Pointer рдЬреИрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Dynamic Memory Allocation Linked List, Tree, Graph, Database Systems, Operating System рддрдерд╛ Object Oriented Programming рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред RGPV B.Tech First Year рдХреЗ рд╡рд┐рджреНрдпрд╛рд░реНрдерд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ Topic Theory, Practical, Viva рддрдерд╛ University Examination рдХреА рджреГрд╖реНрдЯрд┐ рд╕реЗ рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
Related Articles
Manipulators in C++ Notes | endl, setw, setprecision, setfill | Basic Computer Engineering | RGPV BTech First Year
0...
Read More тЖТType Conversion in C++ Notes | Basic Computer Engineering | RGPV BTech First Year
Type Co...
Read More тЖТAssignment Operator in C++ Notes | Basic Computer Engineering | RGPV BTech First Year
Assignm...
Read More тЖТCopy Constructor in C++ Notes | Basic Computer Engineering | RGPV BTech First Year
Copy Co...
Read More тЖТthis Pointer in C++ Notes | Basic Computer Engineering | RGPV BTech First Year
this Po...
Read More тЖТ