You are wrong. There is also ASM, it gives you at least as much control over the memory as well as C, and even finer control about the CPU cycles used, assuming you know your target architecture.
Also there is Rust. If you don’t limit yourself to releases but are willing to use nightlys, you can also use extensions, which do allow a fine grained memory control. Only that you have to convince the compiler about your definition beeing memory-safe.
And since rust uses LLVM under the hood it is as portable as C.






















