我将 struct Person 类型的数据传递给链表,因此每个节点的数据指针都指向一个 struct Person。
struct Person {
char name[16];
char text[24];
};
我正在尝试遍历列表并通过调用打印每个节点中的名称/文本
traverse(&list, &print);
遍历的原型是:
void traverseList(struct List *list, void (*f)(void *));
列表定义为:
struct List {
struct Node *head;
};
我的打印函数接受一个 void * 数据:
print(void *data) { .... }
我知道我必须将数据转换为 struct Person,对吗?
struct Person *person = (struct Person *)data;
printf("%s", person->name);
我知道这还不够,因为我收到“从不兼容的指针类型初始化”警告。在这种情况下,我怎样才能成功施放 void*?谢谢你。