X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fcmem.h;h=132ef28f6105052ab0088d7bcc2588b91b926ad7;hb=9f54a56b4d6a4c2e09529a5e71ad0d84afa1ce45;hp=a8629abc12ec53163056642bb109fe03e3b5263a;hpb=d1f82970bf7d41db2fea11b08cd8e308f6cb8138;p=YACASL2.git diff --git a/include/cmem.h b/include/cmem.h index a8629ab..132ef28 100644 --- a/include/cmem.h +++ b/include/cmem.h @@ -1,23 +1,59 @@ #ifndef YACASL2_CMEM_H_INCLUDED #define YACASL2_CMEM_H_INCLUDED + +#include #include +#include +#include +#include +/** + * @brief 配列のサイズを返すマクロ + */ #ifndef ARRAYSIZE #define ARRAYSIZE(array) (sizeof(array)/sizeof(array[0])) #endif -/* mallocを実行し、0で初期化 */ -/* メモリを確保できない場合はエラーを出力して終了 */ -void *malloc_chk(size_t size, char *tag); +/** + * @brief メモリを解放するマクロ + */ +#ifndef FREE +#define FREE(ptr) {free(ptr); ptr = NULL;} +#endif + +/** + * @brief mallocを実行し、0で初期化する + * + * メモリを確保できない場合はエラーを出力して終了 + * + * @return なし + * + * @param size メモリーのサイズ + * @param tag エラーメッセージなどで表示されるタグ + */ +void *malloc_chk(size_t size, const char *tag); -/* callocを実行 */ -/* メモリを確保できない場合はエラーを出力して終了 */ +/** + * @brief 領域の数とサイズを指定してメモリーを確保するcallocを実行する + * + * メモリを確保できない場合はエラーを出力して終了 + * + * @return なし + * + * @param nmemb 領域の数 + * @param size 領域1個あたりのメモリーサイズ + * @param tag エラーメッセージなどで表示されるタグ + */ void *calloc_chk(size_t nmemb, size_t size, char *tag); -/* malloc_chkを実行してメモリを確保してから、 */ -/* コピーした文字列を返す */ +/** + * @brief malloc_chkを実行してメモリを確保し、コピーした文字列を返す + * + * @return コピーした文字列 + * + * @param s 文字列 + * @param tag エラーメッセージなどで表示されるタグ + */ char *strdup_chk(const char *s, char *tag); -/* メモリがNULLの場合は解放 */ -void free_chk(void *ptr, char *tag); #endif