Writing safe C is a matter of either radically different (much, much slower) process or better tooling or both. Skill is not sufficient.
* the C++ standard
* the CPU arch details
* the OS details
The standard itself delegates a large chunk of functionality to be "platform specific" which will inherently depend either on the CPU or the underlying OS. In fact C++ itself is entirely silent about the ISA other than loosely specifying the virtual machine the language is supposed to run on. So you can get scenarios where some code is perfectly safe on one arch (say alignment doesn't matter) while being severe UB/a failure condition on another (alignment matters and you fault the second you touch misaligned data). There are also other issues like integer over/underflow, fp issues, SIMD issues, memory access issues, stack/heap issues; all of which you MUST address.
Other languages don't quite have these problems because the compiler/runtime handles them and they instead give you a unified interface behind which to write your code.