ヘッダーファイル呼び出しの整理
[YACASL2.git] / src / cmem.c
1 #include "cmem.h"
2
3 void *malloc_chk(size_t size, char *tag)
4 {
5     void *p;
6
7     if((p = malloc(size)) == NULL) {
8         fprintf(stderr, "%s: cannot allocate memory\n", tag);
9         exit(1);
10     }
11     return memset(p, 0, size);
12 }
13
14 void *calloc_chk(size_t nmemb, size_t size, char *tag)
15 {
16     void *p;
17
18     if((p = calloc(nmemb, size)) == NULL) {
19         fprintf(stderr, "%s: cannot allocate memory\n", tag);
20         exit(1);
21     }
22     return p;
23 }
24
25 char *strdup_chk(const char *s, char *tag)
26 {
27     assert(s != NULL);
28     char *t;
29
30     t = malloc_chk(strlen(s) + 1, tag);
31     strcpy(t, s);
32     return t;
33 }