我正在尝试学习C,但是我遇到了整个内存分配问题。我迷失在哪里创造空间。这是我提供的标题。
mapValues
我用:
实现了init函数typedef struct list_item {
char *value;
struct list_item *next;
struct list_item *prev;
} list_item_t;
typedef struct single_list {
list_item_t *head;
list_item_t *tail;
} slist_t;
void init(slist_t *list);
但我使用
运行代码void init(slist_t *list){
list->head = (list_item_t *) malloc(sizeof(list_item_t));
list->tail = (list_item_t *) malloc(sizeof(list_item_t));
}
我收到错误消息称'test'的存储大小未知。我知道我必须定义测试空间,但我应该在哪里写这个以及如何编写?谢谢你们。
答案 0 :(得分:1)
替换:
struct list_t test;
与
slist_t test;
您的类型名为struct single_list
,您还可以使用您创建的名为slist_t
的别名。
请注意,您希望传递指向对象的指针:
init(&test);