#include #include typedef union { char *pc; int *pi; double *pd; void *pv; } Megapointer; int main() { Megapointer P; int *data = (int *)malloc(100); printf("%d\n",sizeof(P)); P.pv = data; printf("%p, %p, %p, %p\n", P.pc, P.pi, P.pd, P.pv); P.pc++; printf("%p, %p, %p, %p\n", P.pc, P.pi, P.pd, P.pv); P.pi++; printf("%p, %p, %p, %p\n", P.pc, P.pi, P.pd, P.pv); P.pd++; printf("%p, %p, %p, %p\n", P.pc, P.pi, P.pd, P.pv); P.pv++; printf("%p, %p, %p, %p\n", P.pc, P.pi, P.pd, P.pv); }