gpt4 book ai didi

c - 将指针转换为 void* 然后与 NULL 进行比较是否安全

转载 作者:太空宇宙 更新时间:2023-11-04 02:21:51 24 4
gpt4 key购买 nike

我正在做作业,由于我们的约束非常严格,如果我想要 100%,我需要检查所有地方的 NULL 指针。所以我做了一个小的内联函数来检查 NULL 的指针:

static inline void exit_on_null(void* ptr, const char* msg) {
if ( ! ptr ) {
printf("%s\n", msg);
exit(1);
}
}

现在我问自己这样做安全吗?根据标准,我知道将指针转换为 void* 并返回并接收原始指针是省事的方法。这是否表明指针的 void* 版本仍然与 NULL 相当,或者是否存在一些我可以运行的陷阱?例如,以下是否始终为真?

ptr = NULL
(void*) ptr == NULL

最佳答案

我自己在标准中找到了答案:

6.3.2.3 Pointers

4 Conversion of a null pointer to another pointer type yields a null pointer of that type. Any two null pointers shall compare equal.

关于c - 将指针转换为 void* 然后与 NULL 进行比较是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56510988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com