// #include // #include #include #include #define nil ((void*)0) #define print printf typedef unsigned long uintptr; void* mallocz(uintptr sz, int clear) { void *p; p = malloc(sz); if(clear && p) memset(p, 0, sz); return p; } void sysfatal(char *s) { exit(0); } void exits(char *s) { exit(0); } void* emalloc(uintptr sz) { void *p; if(!(p = mallocz(sz, 1))) sysfatal("failed malloc: %r"); return p; } void main(int argc, char *argv[]) { void *ptr1, *ptr2; uintptr addr; ptr1 = emalloc(sizeof(uintptr)*5); addr = (uintptr)emalloc(sizeof(uintptr)*5); ptr2 = (void*)addr; print("&ptr1 = %p, &ptr2 = %p, addr = %p\n", ptr1, ptr2, addr); exits(nil); }