Is there an open source and (relatively) simple-to-use dynamic code analysis tool for C++ code?
Something like IBM Purify (memory corruption detection, memory leak d
The software that is widely used (on Linux at least) is Valgrind. It has a lot of sub tools used to do what you are looking for.
There is also KCacheGrind which is a GUI frontend to the profiling tool of Valgrind, AKA Cachegrind.