【发布时间】:2013-08-20 04:56:45
【问题描述】:
如果你这样做:
void *ptr = NULL;
检查 void 指针是否为 NULL 的最佳方法是什么?
我现在的解决方法是:
if (*(void**)ptr == NULL) ...
但这似乎不是最好的方法,因为我隐含地假设 ptr 是 void** 类型(它不是)。
【问题讨论】:
-
何必大惊小怪
-
what 的解决方法?
-
不清楚您要做什么。您的
ptr没有指向 空指针,它是 空指针。空指针不指向任何对象,取消引用它是 UB。 -
如果
ptr为 NULL,则在转换后仍为 NULL,并且取消引用它是未定义的行为。
标签: c pointers void-pointers