10 * メモリを確保できない場合はエラーを出力して終了
12 void *malloc_chk(size_t size, char *tag)
16 if((p = malloc(size)) == NULL) {
17 fprintf(stderr, "%s: cannot allocate memory\n", tag);
20 return memset(p, 0, size);
25 * メモリを確保できない場合はエラーを出力して終了
27 void *calloc_chk(size_t nmemb, size_t size, char *tag)
31 if((p = calloc(nmemb, size)) == NULL) {
32 fprintf(stderr, "%s: cannot allocate memory\n", tag);
39 * malloc_chkを実行してメモリを確保し、コピーした文字列を返す
41 char *strdup_chk(const char *s, char *tag)
46 t = malloc_chk(strlen(s) + 1, tag);