gpt4 book ai didi

c - 查看链接列表的项目

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

我想查看链接列表中的所有项目。

我创建了一个三项列表,当我使用下面的“show_items”函数时,它只显示第一个元素,而其他项无法显示,因为编译器给出了段错误错误。

#include <stdio.h>
#include <stdlib.h>

struct list{
int age;
struct list *next;
};

void create_item(int *total_items, struct list *where_is_first_item, struct list *where_is_last_item)
{
struct list *generic_item;
generic_item = malloc(sizeof(struct list));
printf("\nage of item %d: ", (*total_items)+1);
scanf("%d", &generic_item->age);

if(*total_items == 0){

where_is_first_item->next=generic_item;
where_is_last_item->next=generic_item;
printf("\nitem created\n");
}
else{

where_is_last_item->next=generic_item;
printf("\nitem created\n");
}

void show_items(int *total_items, struct list *where_is_first_item, struct list *temp){
temp=where_is_first_item->next;
int i;
for(i=0;i<*total_items;i++){
printf("age of element %d: %d\n", i+1, temp->age);
temp=temp->next;
}
}

int main (void){
int total_items=0;
struct list *where_is_first_item;
where_is_first_item=malloc(sizeof(struct list));
struct list *temp;
temp=malloc(sizeof(struct list));
printf("\n\n\tCREATE A NEW ITEM\n");
create_item(&total_items, where_is_first_item, where_is_last_item);
total_items++;
show_items(&total_items, where_is_first_item, temp);
return 0;
}

最佳答案

嗯,我在您向我们展示的代码中发现了两个主要问题:

  1. 我没有看到像您在问题陈述中声称的那样创建了三个成员。
  2. malloc() 返回的内存具有未指定的内容,而您希望它具有有用的内容。

然后是一些奇怪的事情:

  1. 如果您从不修改 total_items,为什么要将其作为指针传递。
  2. 如果您立即忽略传入的值,为什么还要传递 temp 作为参数?

关于c - 查看链接列表的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25370667/

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