检查所有 mallocs 是否受 NULL return 保护
Check all mallocs if they are protected with NULL return
我有一个经常使用 malloc 的项目。我想知道是否有可能以某种方式检查我的所有 mallocs 是否都受到 NULL return 的保护?也许在头文件中定义一些东西?我试着自己做,检查论坛 - 都是徒劳的。任何可能的变体?
您可以将对 malloc
的所有调用替换为执行必要的 NULL 检查的包装函数:
void *safe_malloc(size_t s)
{
void *p = malloc(s);
if (!p) {
perror("malloc failed");
exit(1);
}
return p;
}
您也可以对 calloc
和 realloc
执行相同的操作。
我有一个经常使用 malloc 的项目。我想知道是否有可能以某种方式检查我的所有 mallocs 是否都受到 NULL return 的保护?也许在头文件中定义一些东西?我试着自己做,检查论坛 - 都是徒劳的。任何可能的变体?
您可以将对 malloc
的所有调用替换为执行必要的 NULL 检查的包装函数:
void *safe_malloc(size_t s)
{
void *p = malloc(s);
if (!p) {
perror("malloc failed");
exit(1);
}
return p;
}
您也可以对 calloc
和 realloc
执行相同的操作。