summaryrefslogtreecommitdiff
path: root/memory.h
blob: e07bfe83bf92fbb0913e441fc34e4e9b7aaf4972 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once

#include <stdlib.h>
#include <string.h>

void* memdup(void *buf, size_t num);

void* check_after_allocation(const char *funcname, void *ptr);


#define malloc(num, type) \
	((type*)check_after_allocation("malloc", malloc((num)*sizeof(type))))
#define calloc(num, type) \
	((type*)check_after_allocation("calloc", calloc((num), sizeof(type))))
#define realloc(ptr, num, type) \
	((type*)check_after_allocation("realloc", realloc(ptr, (num)*sizeof(type))))
#define strdup(str) \
	((char*)check_after_allocation("strdup", strdup((str))))
#define memdup(buf, num) \
	((char*)check_after_allocation("memdup", memdup((void*)(buf), (num))))