c - C中链表内部的结构

标签 c data-structures struct linked-list

我正在学习如何在 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/

相关文章:

C程序调用shell脚本

c - 如何匹配数组中的多个值?

c++ - Nginx - Cygwin 中的 nchan 模块

c - 结构后面的词是什么?

c++ - IEEE 浮点和内存中的快速浮点表示

c - 如何交换列表中的元素?

algorithm - 数据结构编程算法

算法题..链表

c - 用里面的结构类型初始化一个结构

c - 读取结构内部的字符时有什么问题吗?