【发布时间】:2014-07-10 20:05:02
【问题描述】:
我不确定我必须具体到什么程度,但我会尽我所能提供详细信息。我正在使用 typedef 结构:
typedef struct {
char name[21];
int life;
} pcb_t;
输入姓名和生活的值,然后将其存储在双向链表中。
头文件中的链表结构是:
typedef struct list_node {
void *data;
struct list_node *next;
struct list_node *prev;
} List_node_t;
typedef struct {
List_node_t *head;
List_node_t *tail;
} List_t;
在我的 main 中,我将第一个结构变量初始化为:
char name[BUF_MAX];
int life;
pcb_t *pcb;
输入全部正确,pcb 结构作为新节点存储在列表中。我尝试在初始输入之后运行一个简单的循环,以打印出每个 pcb 结构的名称和寿命值。我使用的循环是这样的:
void *context = NULL;
void *data;
while( List_next_node( &the_list, &context, &data) && (data != NULL))
{
printf("Name: %s\n", (char *)data);
printf("Lifetime: %d\n", (int )data);
}
List_next_node 函数横穿列表的位置。 the_list 是列表,上下文是跟踪我们在列表中的位置,数据是数据。
我不确定如何访问我想要的信息,因为我的 while 循环正确打印出 pcb 结构的名称,但生命周期不是。
【问题讨论】: