Can memory handling errors be avoided by using only memory-safe languages? In brief, yes. They really do have the potential to eliminate a huge source of critical errors in the world's infrastructure. (There can still be memory handling errors in the implementation of the compilers and runtime systems for these languages, but those are usually written by far fewer, far more qualified people than your average industry programmer, so that the risk is far smaller.)
Can these languages replace C/C++ on the strength of improved security? In brief, no. As it is, the market doesn't reward security: software shops usually aren't liable for damages caused by program error, consumers don't accept higher prices for better software quality, and all too many private and public institutions are interested in easily hackable systems. Also, programmers love the raw power that memory-unsafe languages give them. Therefore, for the foreseeable future we will be stuck with undefined behaviour and the resulting vulnerabilities even though nowadays we could afford the additional cost involved in memory-managed systems.