Identify C++ Memory Errors
Memory management is the most error-prone aspect of C++. Here are the four most common bugs.
Memory Leak
int* p = new int(42);
// Forgot: delete p; ← memory is never returned to the heapDangling Pointer
int& bad() {
int x = 5;
return x; // x is destroyed when function returns
}
// Caller receives a reference to dead stack memoryStack Overflow
void infinite() {
int arr[1000000]; // 4 MB per call
infinite(); // never returns
}Double-Free
int* p = new int(42);
delete p;
delete p; // undefined behavior — the memory is already freed