mem.h 489 B

12345678910111213141516171819202122232425
  1. /*
  2. * 文件名: mem.h
  3. * 目标: 内存管理工具的头文件
  4. */
  5. #ifndef MEM__H
  6. #define MEM__H
  7. #include <stdlib.h>
  8. #define free(p) ((((p)!=NULL) ? (free(p), NULL) : NULL), (p)=NULL) // free不是可选的宏
  9. #if BUILD_MEM
  10. static void *safeCalloc(size_t n, size_t size);
  11. static void *safeCalloc(size_t n, size_t size) {
  12. void *re = calloc(n, size);
  13. if (re == NULL)
  14. exit(1);
  15. return re;
  16. }
  17. #define calloc(n, size) (safeCalloc(n, size))
  18. #endif
  19. #endif // MEM__H