gpt4 book ai didi

c - 指针和结构

转载 作者:太空狗 更新时间:2023-10-29 16:13:03 24 4
gpt4 key购买 nike

这是我的问题...我有这段代码(创建列表)

typedef struct node
{
int pid;
int runtime;
struct node *next;
}job;

int main()
//code
job *first = NULL;
job *last = NULL;
job *newnode;
//code
//from here
if( first == NULL )
{
first = last = newnode;
newnode->next = NULL;
}
else
{
last->next = newnode;
last = last->next;
}
// to here

所以我想在一个函数中完成从这里到这里之间的部分(这样看起来会更好)我这样做了..我创建了一个函数

void funct(job ** pfirst, job **plast, job*newnode);

在 main 而不是我使用的 strong 部分:

 funct(&first, &last, newnode);

函数是这样的

void funct(job ** pfirst, job **plast, job*newnode)
{
if(*pfirst == NULL)
{
*pfirst = *plast = newnode;
newnode->next = NULL;
}
else
{
*plast->next = newnode;//<----
*plast = *plast->next;//<----
}
}

错误在箭头中,sais 不是结构的一部分..

最佳答案

->higher precedence*(Dereference) 运算符上,因此您需要在 list 周围加上括号 () 来覆盖优先级。像这样更正它:(*last)->next = newnode;

*last->next = newnode; 是错误的,因为它与 *(last->next) = newnode;list 相同没有成员 next

关于c - 指针和结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16841338/

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