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 handleReal-world example Forgetting to close file handles exhausts the OS descriptor limit; RAII wrappers prevent it.