C++ › Memory Management

What is the difference between a memory leak and a resource leak?

Advanced

Answer

A memory leak is failing to free heap memory. A resource leak is more general—failing to release any acquired resource: file handles, sockets, mutex locks, database connections, or OS handles. RAII addresses both by tying resource release to object destruction, so any acquired resource is freed automatically when its owner goes out of scope.
{
    std::ofstream f("log.txt"); // RAII: file closed at scope end
}   // f's destructor releases the file handle
Real-world example Forgetting to close file handles exhausts the OS descriptor limit; RAII wrappers prevent it.

Common follow-ups: How does RAII fix resource leaks? | Give examples of non-memory resources.