警告:C中指针与整数之间的比较

|| 我收到警告
warning: comparison between pointer and integer
在下一段代码中包含“ 1”的行上:
char cwd[1024];

if (getcwd(cwd, sizeof(cwd)) != (char*)NULL)
    printf(\"%s\\n\",cwd);
else
    error_print(\"error in pwd\");
我需要如何以及如何解决?     
已邀请:
您是否包括unistd.h?如果不是,则会出现该错误,因为您的C编译器假定getcwd返回int。 解决办法?包括unistd.h     
getcwd的原型是
char *getcwd(char *buf, size_t size);
确保包含
<unistd.h>
,否则返回类型默认为
int
。 在这里,甚至Ideone也给出了其当前工作目录     
您是否包含了必需的.h,以便编译器了解getcwd返回什么? c编译器的行为可能是假设每个未定义函数的返回值都是int。     
在以下链接的返回类型部分中,getcwd失败时返回null。因此,不是检查
!= (char *)NULL
,而是检查
!= NULL
http://linux.die.net/man/3/getcwd     
用这个
if (getcwd(cwd, sizeof(cwd)) != NULL)
修改行     

要回复问题请先登录注册