summaryrefslogtreecommitdiff
path: root/util.h
blob: 1835aa22813433d376492332483d76d49c32ade9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#pragma once

#include <stdbool.h>  // 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);