&引用;一元'的类型参数无效*';C
我对编程比较陌生,即使做了彻底的研究,我也无法解决这个问题 我想通过一个对象[定义为变量类型&引用;一元'的类型参数无效*';C,c,unions,C,Unions,我对编程比较陌生,即使做了彻底的研究,我也无法解决这个问题 我想通过一个对象[定义为变量类型union]检查我是否可以与用户输入的新对象进行比较,因为输入的对象是否在该特定集合中,但总是会出现两个错误: “一元'*'的类型参数无效(具有'Object')” 以下是结构定义以及对象的并集: typedef struct object { union { char c; char t[OSIZE]; unsigned long int h[OSIZE]; un
union
]检查我是否可以与用户输入的新对象进行比较,因为输入的对象是否在该特定集合中,但总是会出现两个错误:
“一元'*'的类型参数无效(具有'Object')”
以下是结构定义以及对象的并集:
typedef struct object
{
union
{
char c;
char t[OSIZE];
unsigned long int h[OSIZE];
unsigned int i;
float f;
long double j[OSIZE];
int type;
} TYPE;
} Object;
typedef struct list1
{
Object item;
struct list1*next;
} LIST;
typedef LIST*SET;
scan->item
是一个对象,而不是指针。所以你不能取消引用它。你想用*scan->item
做什么?请注意,它被解析为*(扫描->项目)
,您可能是指(*scan)->项目
?或者只是scan->item
?或者…?这也可能是您的问题。尝试在那里添加一个空格。请注意,while(S!=NULL)
应该是while(scan!=NULL)
,但是您应该测试p!=0
或设置p=1后使用break
代码>因为一旦知道答案,就没有必要扫描集合的其余部分。甚至返回true
如果找到匹配项,则简单的返回false如果到达,则在结尾处删除变量p
。(不要完全相信单一入学/单一退学学校——这种情况下提前返校是完全可以理解的,而且比其他学校简单得多。)基本上,我想做的只是“扫描”扫描中项目的内容,它指向原始设置,以检查两个项目是否匹配,至少这是我的目标,所以我试过(*扫描)还是不起作用。有什么想法吗?
typedef struct object
{
union
{
char c;
char t[OSIZE];
unsigned long int h[OSIZE];
unsigned int i;
float f;
long double j[OSIZE];
int type;
} TYPE;
} Object;
typedef struct list1
{
Object item;
struct list1*next;
} LIST;
typedef LIST*SET;
if (*scan->item == items)