我有一个经常使用malloc的项目。而且我想知道是否有可能以某种方式检查我所有的malloc是否都受到保护,以防止 NULL 返回?也许在头文件中定义一些东西?我试图自己做,检查了论坛-全部徒劳。有任何可能的变体吗?
答案 0 :(得分:4)
您可以使用执行必要的NULL检查的包装函数来替换对malloc
的所有调用:
void *safe_malloc(size_t s)
{
void *p = malloc(s);
if (!p) {
perror("malloc failed");
exit(1);
}
return p;
}
您也可以对calloc
和realloc
进行同样的操作。