🧠 C++ new and delete – Make and Break Memory Blocks
When you want to create variables while the program is running, you need dynamic memory. That’s where new and delete come in!
With new, you create a memory block. With delete, you clean it up. It’s like renting a room and returning the keys when done! 🏠
📌 Syntax of new and delete
int* ptr = new int; // Allocate one int *ptr = 50; // Assign value delete ptr; // Free the memory
🧪 Example: Simple new and delete
#include <iostream>
using namespace std;
int main() {
int* num = new int; // Dynamically create an int
*num = 42; // Assign value
cout << "Value: " << *num << endl;
delete num; // Clean up
return 0;
}
🔢 Allocating Arrays
Need more than one block? You can use new[] and delete[] to handle arrays.
#include <iostream>
using namespace std;
int main() {
int* numbers = new int[5]; // Allocate array of 5 ints
for(int i = 0; i < 5; i++) {
numbers[i] = i * 10;
}
for(int i = 0; i < 5; i++) {
cout << numbers[i] << " ";
}
delete[] numbers; // Clean up array memory
return 0;
}
⚠️ Why Use delete?
If you use new, always use delete. Not doing so causes a memory leak — memory stays allocated forever, even if you’re done using it! 🧯
✅ Summary
newcreates dynamic memory at runtime.deletefrees that memory to avoid leaks.- Use
new[]anddelete[]for arrays.