gpt4 book ai didi

c - 二进制操作数无效 == 错误

转载 作者:太空宇宙 更新时间:2023-11-04 08:34:42 25 4
gpt4 key购买 nike

intarr_result_t intarr_set( intarr_t* ia, 
unsigned int index,
int val )
{
if( ia[index] != NULL )
{
index = val;
return INTARR_OK;
}
else if (ia[index] == NULL)
{
return INTARR_BADARRAY;
}
else
{
return INTARR_BADINDEX;
}
}

如果索引有效,此函数应该返回 INTARR_OK,并且我将 ia[index] 值设置为 val。如果 ia 为空,我返回 INTARR_BADARRAY,否则,我保持数组不变并返回 INTARR_BADINDEX。但是当我运行这段代码时,出现了以下错误:

intarr.c:37:16: error: invalid operands to binary != (have ‘intarr_t’ and ‘void *’)
if( ia[index] != NULL )
^
intarr.c:42:21: error: invalid operands to binary == (have ‘intarr_t’ and ‘void *’)
else if (ia[index] == NULL)

有人知道这个错误是什么意思吗?

intarr_t的定义:

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

最佳答案

我不知道 intarr_t 是什么,但如果它是一个 int,你可以将它与 NULL 而非 0 进行比较;如果它是一个字符,您可以不将它与 NULL 进行比较,而是将其与 '\0' 进行比较。

消息的意思是NULL是空指针,而intarr_t显然不是指针,所以存在类型冲突。

既然您已经发布了 intarr_t - 它什么时候无效?也许你需要

if (ia[index].data != NULL)

关于c - 二进制操作数无效 == 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26767130/

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