X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=src%2Fcerr.c;fp=src%2Fcerr.c;h=990673900bb3d2ad61b73abe082d92581c949c10;hp=973881d47e5df80d7a94c765458ca75ff490748c;hb=288d61424576d1aae956ea8e4b5fb89dc25909db;hpb=f9e27534c723ae199ed32404047b9a2c6519a8a9 diff --git a/src/cerr.c b/src/cerr.c index 973881d..9906739 100644 --- a/src/cerr.c +++ b/src/cerr.c @@ -13,6 +13,26 @@ void *malloc_chk(size_t size, char *tag) return p; } +/* callocを実行し、メモリを確保できない場合は */ +/* エラーを出力して終了 */ +void *calloc_chk(size_t nmemb, size_t size, char *tag) +{ + void *p; + + if((p = calloc(nmemb, size)) == NULL) { + fprintf(stderr, "%s: cannot allocate memory\n", tag); + exit(-1); + } + return p; +} + +/* エラーの初期化 */ +void cerr_init() +{ + cerr = malloc_chk(sizeof(CERR), "cerr"); + cerr->num = 0; +} + /* malloc_chkを実行してメモリを確保してから、 */ /* コピーした文字列を返す */ char *strdup_chk(const char *s, char *tag)