mem.c.svn-base
来自「纯C数据结构」· SVN-BASE 代码 · 共 56 行
SVN-BASE
56 行
#include <stdlib.h>#include "assert.h"#include "except.h"#include "mem.h"const Except_T Mem_Failed = { "Allocation Failed" };void *Mem_alloc(int nbytes, const char *file, int line) { void *ptr; assert(nbytes > 0); ptr = malloc(nbytes); if (ptr == NULL) { if (file == NULL) RAISE(Mem_Failed); else Except_raise(&Mem_Failed, file, line); } return ptr;}void *Mem_calloc(int count, int nbytes, const char *file, int line) { void *ptr; assert(count > 0); assert(nbytes > 0); ptr = calloc(count, nbytes); if (ptr == NULL) { if (file == NULL) RAISE(Mem_Failed); else Except_raise(&Mem_Failed, file, line); } return ptr;}void Mem_free(void **ptr, const char *file, int line) { assert(ptr); free(*ptr); *ptr = NULL;}void *Mem_resize(void **ptr, int nbytes, const char *file, int line) { void *newptr; assert(ptr && *ptr); assert(nbytes > 0); newptr = realloc(*ptr, nbytes); if (newptr == NULL) { if (file == NULL) RAISE(Mem_Failed); else Except_raise(&Mem_Failed, file, line); } *ptr = NULL; return newptr;}static char rcsid[] = "$RCSfile: RCS/mem.doc,v $ $Revision: 1.6 $";
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?