检查所有 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;
}

您也可以对 callocrealloc 执行相同的操作。