#include<cstdio>
#include<stdlib.h>
int main()
{
char* ptr=NULL;
printf("%s",ptr);
return 0;
}
它将输出(null)作为输出。 以上是示例代码。在实际代码中,我将char *作为函数的返回值,我希望打印字符串以进行日志记录。但是,NULL也是该函数的有效返回值,所以我想知道在打印字符串之前是否需要空检查?下面的C代码是否安全?
char* ptr=someFuncion();
// do i need the following if statement?
if(ptr!=NULL)
{
printf("%s",ptr);
}
我只是想确保输出将是相同的,即若ptr = NULL,则输出应为(空)的所有平台和编译器和上面的代码(不if语句)不会对任何崩溃C标准兼容平台。
总之,上面的代码(没有if语句)标准是否兼容?
感谢您的帮助和耐心:)
问候
拉利
什么是''头文件提供给您的代码?您的代码通过将空指针传递给不期望的函数来调用未定义的行为。任何事情都可能发生 - 主要包括可能无意中发生的事情。 –
2010-03-30 13:50:03
好吧,我明白了。谢谢大家对这样的“实时”帮助:)) – ghayalcoder 2010-03-30 14:17:02