ドキュメントの修正
[YACASL2.git] / include / cmem.h
1 #ifndef YACASL2_CMEM_H_INCLUDED
2 #define YACASL2_CMEM_H_INCLUDED
3 #include <stdlib.h>
4
5 /**
6  * @brief 配列のサイズを返すマクロ
7  */
8 #ifndef ARRAYSIZE
9 #define ARRAYSIZE(array) (sizeof(array)/sizeof(array[0]))
10 #endif
11
12 /**
13  * @brief メモリを解放するマクロ
14  */
15 #ifndef FREE
16 #define FREE(ptr) {free(ptr); ptr = NULL;}
17 #endif
18
19 /**
20  * @brief mallocを実行し、0で初期化する
21  *
22  * メモリを確保できない場合はエラーを出力して終了
23  *
24  * @return なし
25  *
26  * @param size メモリーのサイズ
27  * @param tag エラーメッセージなどで表示されるタグ
28  */
29 void *malloc_chk(size_t size, char *tag);
30
31 /**
32  * @brief 領域の数とサイズを指定してメモリーを確保するcallocを実行する
33  *
34  * メモリを確保できない場合はエラーを出力して終了
35  *
36  * @return なし
37  *
38  * @param nmemb 領域の数
39  * @param size 領域1個あたりのメモリーサイズ
40  * @param tag エラーメッセージなどで表示されるタグ
41  */
42 void *calloc_chk(size_t nmemb, size_t size, char *tag);
43
44 /**
45  * @brief malloc_chkを実行してメモリを確保し、コピーした文字列を返す
46  *
47  * @return コピーした文字列
48  *
49  * @param s 文字列
50  * @param tag エラーメッセージなどで表示されるタグ
51  */
52 char *strdup_chk(const char *s, char *tag);
53
54 #endif