&引用;将指针延迟到不完整类型“;c中的错误
我有两个这样的结构 代码编辑:&引用;将指针延迟到不完整类型“;c中的错误,c,structure,C,Structure,我有两个这样的结构 代码编辑: typedef struct { int threadId; void *stack; }gtthread_t; typedef struct { gtthread_t *th; struct list *next; }list; 在我的代码中,我使用了如下结构: list *temp; gtthread_t thread; if(temp->next->th->threadId != thread.threadId
typedef struct
{
int threadId;
void *stack;
}gtthread_t;
typedef struct
{
gtthread_t *th;
struct list *next;
}list;
在我的代码中,我使用了如下结构:
list *temp;
gtthread_t thread;
if(temp->next->th->threadId != thread.threadId && temp->next!=NULL) //error generated here
{
//do something
}
错误也发生在这里:
free(temp->next->th->stack);
我做错了什么?我在temp->next中有一个节点(它不是NULL)
任何帮助都将不胜感激
typedef struct
{
gtthread_t *th;
list *next;
}list;
当解析器位于第3行时,它不知道list
是什么意思。试一试
typedef struct list
{
gtthread_t *th;
struct list *next;
}list;
相反。只需像这样重写列表
struct list
{
gtthread_t *th;
struct list *next;
};
typedef struct list list;
还需要创建此结构:
temp->next->th->threadId
i、 e
temp=(list*)malloc(sizeof(list));
temp->next=(列表*)malloc(sizeof(列表));
temp->next->th=(gtthread_t*)malloc(sizeof(gtthread_t));
temp->next->th->threadId=
临时->下一步->第四步->堆栈=
您对列表的定义有错误,编译器应该在列表*下一步投诉代码>行,因为该行尚未定义列表
。请发布一个完整的显示问题的最小源文件。这会编译吗?这是C,因此您需要在结构列表中指定“结构列表*下一步”。您发布的代码不是真实代码。通过这个不相关的示例来猜测实际代码中发生了什么是浪费时间。非常抱歉。我已经编辑了代码。我得到了同样的错误。我想知道你是否有一些wierd命名冲突-可能与宏。您是否尝试过将list
更改为Hari
或类似的内容?
temp = (list *)malloc(sizeof(list));
temp->next = (list *)malloc(sizeof(list));
temp->next->th = (gtthread_t *)malloc(sizeof(gtthread_t));
temp->next->th->threadId = <some value>
temp->next->th->stack = <some value>