3 ms·
Casting an integer to a pointer is implementation defined, not UB. And every sane implementation does what everyone expects because its how memory mapped IO wo
by binjooou 3y ago
Casting an integer to a pointer is implementation defined, not UB.
And every sane implementation does what everyone expects because its how memory mapped IO works (but you probably want a volatile in there and maybe a compiler or memory barrier as well depending on what the hardware guarantees about the access patterns for that particular range of addresses)
- adwn 3y ago> Casting an integer to a pointer is implementation defined, not UB. You're right, that was a bad example. Here's a better one: int x, y; ptrdiff_t diff = &x - &y; This is Undefined Behavior, because &x and &y don't point to the same object.