我正在学习如何在 C 中实现链表。我了解普通链表的基础知识,如何添加值,如何打印它们等。但我一直在想 - 是否可以添加其他结构作为链表中的值?我的意思是:
typedef struct personal_info {
char *name;
char *surname;
int phone_number;
} Info;
typedef struct llist {
Info *info;
struct llist *next;
} List;
当我这样做时,我如何访问 Info
结构的值?
List *l;
l = malloc(sizeof(List));
l->info->name = 'name';
l->info->surname = 'surname';
l->info->phone_number = 1234567890;
代码崩溃了,所以我肯定做错了什么。您能给我一些实现该目标的提示吗?
最佳答案
您还需要为信息结构分配内存:
l = malloc(sizeof(List));
l->info = malloc(sizeof(Info));
l->info->name = "name";
l->info->surname = "surname";
l->info->phone_number = 1234567890;
关于c - C中链表内部的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7251266/