gpt4 book ai didi

c - 无法在需要整数返回类型的函数中返回 NULL

转载 作者:行者123 更新时间:2023-12-01 12:38:37 26 4
gpt4 key购买 nike

警告:返回从指针生成整数而不进行强制转换[默认启用]返回 NULL;

我试图在我的函数中返回 NULL,但没有成功,我不明白为什么会这样。下面是我的代码,但我不会发布整个代码,因为我只是在 return 语句上遇到问题。希望您能理解。

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

typedef struct {
int* data;
unsigned int len;
} intarr_t;

int intarr_save_binary( intarr_t* ia, const char* filename )
{
if(ia == NULL)
{
return NULL; // problem here, I want to return NULL if intarr_t*ia is null
}
else
{
// remaining code here, but is uncessary
return 0;
}
}

我的最后一个问题也是如何检查字符数组文件名是否为 NULL?

我会这样做吗:

if (filename == NULL)
{
return NULL;
}

最佳答案

如果返回类型是int,则不能返回NULL。要显示错误,您可以返回一个特殊值,如零或 -1,如果您在任何调用函数中检查该值。许多函数在成功时返回非负数,或在出错时返回 -1。

NULL 不能存储在 int 变量中,这与 SQL 不同。如果忽略警告并返回 NULL,则 NULL 将被转换为零。调用函数无法判断您返回的是 NULL 还是零。

如果您的函数只需要指示成功或失败,那么通常返回 1 表示成功,返回 0 表示失败。当被视为 bool 值(如 if 语句)时,零表示“假”,非零表示“真”。

关于c - 无法在需要整数返回类型的函数中返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27096623/

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