#pragma once #include // this is useful #define malloc(n,t) ((t*)malloccheck((n)*sizeof(t))) #define calloc(n,t) ((t*)calloccheck((n),sizeof(t))) #define realloc(p,n,t) ((t*)realloccheck((p),(n)*sizeof(t))) #define mallocx(n,t) ((t*)mallocreal((n)*sizeof(t))) #define callocx(n,t) ((t*)callocreal((n),sizeof(t))) #define reallocx(p,n,t) ((t*)reallocreal((p),(n)*sizeof(t))) char* copystring(const char *s); char* copybufasstring(const char *b,int length); void outofmem(void) __attribute__((noreturn)); double floatmod(double a,double b); void* malloccheck(size_t n); void* calloccheck(size_t n,size_t s); void* realloccheck(void *p,size_t n); void* mallocreal(size_t n); void* callocreal(size_t n,size_t s); void* reallocreal(void *p,size_t n);