基本上我要做的是创建一个通用列表,我可以在其中使用void*
to 将任何数据类型放入节点中。这是通用列表和我想要放入其中的结构。
typedef struct LIST{
struct LIST *next;
void *data;
} LIST;
struct person {
char *name;
int age;
};
这是分配指针的函数
LIST *create_node(void *data, int size) {
LIST *tmp;
tmp = NULL;
tmp = (LIST*)malloc(sizeof(LIST));
tmp->data = malloc(size);
tmp->data = data;
memcpy(tmp->data, data, sizeof(data));
tmp->next = NULL;
return tmp;
}
这是我调用函数的create_node
函数
void test_list() {
LIST *my_list;
struct person *my_person;
my_list = NULL;
my_person = (struct person*)malloc(sizeof(struct person));
strcpy(my_person->name, "PABLO");
my_person->age = 23;
my_list = create_node(my_person, sizeof(struct person));
printf("%d \n", my_list->data->age);
}
问题出现在我收到错误的最后一行:“成员年龄的请愿书不是结构或枚举”。我怎样才能摆脱这个问题?