yeah i mean if you grok the underlying workings of scanf then there's no problem
i'd just argue that the problem is understanding what you need to understand is the problem with straight c, and with any language like c++ where you're liable to shoot thineself in thy foot
How? They go where they point, or to NULL, and can be moved by arithmetic. If you move them where they shouldn't go, bad things happen. If you deference NULL, bad things happen. That's it.
All of C++? That's unreasonable, it's even in the name that it's very expansive.
similarly, "all of pointers" is unreasonable
"all of pointers" can have a lot of unexpected results
that's literally why java exists as a language, and is so popular
Plus all previous operating systems, all supercomputer climate, physics and other science simulations, all the toaster and car and so on chips using bespoke operating systems because Linux won't fit, every computer solving practical engineering or logistics problems numerically, renderers...
sure, and the quantity of code where true low-level access is actually required is still absolutely minuscule compared to that where it isn't
i'm not worried because an android that heavy couldn't even stand up