gpt4 book ai didi

C编程调用指针的指针

转载 作者:行者123 更新时间:2023-11-30 20:39:49 27 4
gpt4 key购买 nike

我定义了这些结构:

typedef struct {
char *first_name;
char *last_name;
char SSN[9];
float gpa;
struct student *next;
} student;

typedef struct {
student *head;
student *current;
student *tail;
} students;

在我的主函数中,我想在学生结构中添加一个学生。然后,调用类主任的名字。我该怎么做?

void add(students *list, student *a) {
if(list->head) {
a->next = NULL;
list->head = &a;
list->current = list->head;
list->tail = NULL;
} else {
printf("Will implement");
}
}

int main()
{
students grade1;

student a;
a.first_name = &"Misc";
a.last_name = &"Help";

add(&grade1, &a);

printf("%s %s", a.first_name, a.last_name);
printf("%s", grade1.head->first_name);
}

printf("%s",grade1.head->first_name);

似乎不起作用。有什么建议吗?

谢谢

最佳答案

首先,您必须初始化对象 grade1 的所有数据成员。例如

students grade1 = { 0 };

其次代替

student a;
a.first_name = &"Misc";
a.last_name = &"Help";

至少应该有这样的

student *a = malloc( sizeof( student ) );
a->first_name = "Misc";
a->last_name = "Help";
a->next = NULL;

函数add可能看起来像

void add( students *list, student *a ) 
{
if ( list->tail == NULL )
{
list->head = list->tail = a;
}
else
{
list->tail->next = a;
}
}

它可以被称为

add( &grade1, a );

关于C编程调用指针的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25778985/

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