Your statement that, effectively, C++ can do everything C can, plus more, has the direct logical implication that C++ is absolutely more complex, not equally complex.
(FWIW, I don't fully agree with even that statement. C++ makes using e.g. enums with bitmasks much harder than C.)
Correct. Even if you simply changed all of your dynamic arrays to std::vectors, the code you write is now simpler, easier to reason about, and pretty much memory leak-free.