int *ip = malloc(20 * sizeof *ip);
unsigned char *ucp;
unsigned long l;
if (ip == NULL)
panic("out of memory");
ucp = (unsigned char *)&ip;
l = ucp[0];
l |= (unsigned long)ucp[1] << 8;
l |= (unsigned long)ucp[2] << 16;
l |= (unsigned long)ucp[3] << 24;
printf("ip = %p; as an integer, %lu\n", (void *)ip, l);
free(ip);
printf("ip = %p\n", (void *)ip);