
...
Code Block | ||||
---|---|---|---|---|
| ||||
#include <assert.h> #include <stdint.h> void h(void) { intptr_t i = (intptr_t)(void *)&i; uintptr_t j = (uintptr_t)(void *)&j; void *ip = (void *)i; void *jp = (void *)j; assert(ip == &i); assert(jp == &j); } |
INT36-C-EX3: An integer may be converted to a void*
and back as long as the pointer is not dereferenced, and the integer is in range (that is, the appropriate range for an intptr_t
or uintptr_t
).
...