void * xrealloc (void *p, size_t n) { p = realloc (p, n); if (p == 0) xalloc_fail (); return p; }
char *xstrdup(const char *s) { char *p; p = strdup(s); if(!p) xalloc_fail ((int)strlen(s)); return p; }
void * xmalloc (size_t n) { void *p; p = malloc (n); if (p == 0) xalloc_fail (); return p; }
void * xmalloc (size_t n) { void *p; p = malloc (n); if (p == NULL) xalloc_fail ((int)n); return p; }
void * xmalloc_and_zero (size_t n) { void *p; p = malloc (n); if (p == NULL) xalloc_fail ((int)n); memset (p, '\0', n); return p; }
void* xmalloc(size_t size) { void *ptr = NULL; if (size != 0) ptr = malloc(size); assert(ptr != NULL); if (ptr == NULL) xalloc_fail(); return ptr; }