gpt4 book ai didi

c - 指向错误的列表成员

转载 作者:行者123 更新时间:2023-11-30 19:17:35 25 4
gpt4 key购买 nike

这可能是一个菜鸟问题,但是你能解释一下为什么运行这个我会打印列表的最后一个成员而不是第一个成员吗?我错过了什么吗?

struct nodo {
int info;
struct nodo *prec;
struct nodo *succ;
} ;
typedef struct nodo nodo;



nodo *leggi_lista(void);

int main (void) {

struct nodo *q;

q= NULL;
q=leggi_lista();

printf("%d\n\n", q->info); //should print first member of the list

return 0;

}

nodo *leggi_lista(void) { //creating list
nodo *p, *primo=NULL;
int i, n;
printf("Numero di elementi: ");
scanf("%d", &n);
printf("Inserisci %d numeri: ", n);
for (i=0; i<n; i++) {
p = malloc(sizeof(struct nodo));
scanf("%d", &p->info);
p->succ = primo;
primo = p;
}


return (primo) ;}

aa我不知道我还能添加什么帖子助手正在欺负我:(

最佳答案

您正在从保存 p 中的值的函数返回 primo ,这是由最后一个 malloc() 获得的,显然您查看打印出的最后一个值。

您需要修复函数来创建列表。您需要保持列表头部完整,并从函数返回 head 并从 head 打印到列表末尾。

关于c - 指向错误的列表成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27970343/

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