-/* 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);
+
+/**
+ * @brief 領域の数とサイズを指定してメモリーを確保するcallocを実行する
+ *
+ * メモリを確保できない場合はエラーを出力して終了
+ *
+ * @return なし
+ *
+ * @param nmemb 領域の数
+ * @param size 領域1個あたりのメモリーサイズ
+ * @param tag エラーメッセージなどで表示されるタグ
+ */
+void *calloc_chk(size_t nmemb, size_t size, const char *tag);