pto*_*ato 26
你不能.
而是初始化它NULL并检查它是否NULL:
char *foo = NULL;
...
if(!foo) { /* shorter way of saying if(foo == NULL) */
Run Code Online (Sandbox Code Playgroud)
您无法在运行时以独立于平台的方式进行测试.除了分配给它之外,使用未初始化的值执行任何操作都是未定义的行为.查看源代码并分析代码流.
可能是您的编译器使用特定值初始化堆栈内存,您可以测试此值.它甚至不能移植到具有不同标志的相同编译器(因为标准不需要它,并且它可能仅在调试模式下发生),并且它不可靠,因为您可能已经分配了"魔术"值.
在这种情况下,您通常要做的是将指针初始化为NULL(等效地为0),然后再测试它是否为NULL.这不会告诉您是否在中间时间内为其指定了NULL,但它会告诉您是否已指定"有用"值.