X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=include%2Fcmem.h;fp=include%2Fcmem.h;h=2e7cd3c1464f054e59fc82ecb675a874c697b856;hp=0000000000000000000000000000000000000000;hb=555c5e8b851becc08ba661a9cb19f617d5a00c12;hpb=de52e6f779e8682236319dd36180f1ab58ffeed9 diff --git a/include/cmem.h b/include/cmem.h new file mode 100644 index 0000000..2e7cd3c --- /dev/null +++ b/include/cmem.h @@ -0,0 +1,28 @@ +#ifndef YACASL2_CMEM_H_INCLUDED +#define YACASL2_CMEM_H_INCLUDED + +#include +#include +#include +#include +#include + +#ifndef ARRAYSIZE +#define ARRAYSIZE(array) (sizeof(array)/sizeof(array[0])) +#endif + +/* mallocを実行し、メモリを確保できない場合は */ +/* エラーを出力して終了 */ +void *malloc_chk(size_t size, char *tag); + +/* callocを実行し、メモリを確保できない場合は */ +/* エラーを出力して終了 */ +void *calloc_chk(size_t nmemb, size_t size, char *tag); + +/* malloc_chkを実行してメモリを確保してから、 */ +/* コピーした文字列を返す */ +char *strdup_chk(const char *s, char *tag); + +/* メモリがNULLの場合は解放 */ +void free_chk(void *ptr, char *tag); +#endif