X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fcmem.h;h=fca5acb0a345170eb586a4722c766794bebd6688;hb=0e4ea114b0d9c79a3c8dbb6cb8fa60275c18846e;hp=c67022642dea2e26f4a1eb862f24cc624276f28f;hpb=6eb54846c27b216d7602a5107d9383f8f4324d71;p=YACASL2.git diff --git a/include/cmem.h b/include/cmem.h index c670226..fca5acb 100644 --- a/include/cmem.h +++ b/include/cmem.h @@ -1,36 +1,69 @@ #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 /** - * メモリを解放 + * @brief メモリを解放するマクロ */ #ifndef FREE #define FREE(ptr) {free(ptr); ptr = NULL;} #endif /** - * mallocを実行し、0で初期化 + * @brief mallocを実行し、0で初期化する + * * メモリを確保できない場合はエラーを出力して終了 + * + * @return なし + * + * @param size メモリーのサイズ + * @param tag エラーメッセージなどで表示されるタグ */ -void *malloc_chk(size_t size, char *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); +/** + * @brief malloc_chkを実行してメモリを確保し、コピーした文字列の指定した長さの部分を返す + * + * @return コピーした文字列 + * + * @param s 文字列 + * @param len 文字列の長さ + * @param tag エラーメッセージなどで表示されるタグ + */ +char *strndup_chk(const char *s, size_t len, char *tag); #endif