xalloc - safe memory allocation ------------------------------- this module implements malloc and friends + some extensions. If `__DEBUG__` symbol is defined. The functions will provide extended debug logic and kills the program (passing 0 as size to malloc for example). The funtions will at all times kill the program if memory can't be allocated for some reason, this makes the need for client-code to check for `NULL` pointers returned by these functions redundant. functions ~~~~~~~~~ `xmalloc()`:: Just like malloc, this function allocates a block of memory of 'size' bytes. + If compiled with the `__DEBUG__` symbol, the function will not allow zero size `xmallocz()`:: Exactly like xmalloc but will initialize the block with zero's. `xrealloc()`:: Reallocates a previous allocated block of memory to 'size' bytes. + If compiled with the `__DEBUG__` symbol, the function will not allow zero size `xstrdup()`:: Allocates and copies the string 's' to a new memory location and returns it to the user. + If compiled with the `__DEBUG__` symbol, the function will not allow 's' to be a `NULL` pointer `xmemdup()`:: Allocates and copies `len` bytes from `ptr` to a new memory location and returns it to the user. + If compiled with the `__DEBUG__` symbol, the function will not allow 'ptr' to be a `NULL` pointer `xfree()`:: Free's a previous allocated block (pointed to by 'ptr') that is allocated by xmalloc/malloc. + If compiled with the `__DEBUG__` symbol, the function will not allow 'ptr' to be a NULL pointer