存储大小未知

Storage size is unknown

我正在尝试学习 C,但我在处理它附带的整个内存分配时遇到了问题。我不知道在哪里创建 space。这是我收到的 header。

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);

我实现了 init 函数:

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));
}

但我使用 运行 代码

int main(){
    struct list_t test;
    init(test);
    return 0;

我收到一条错误消息,指出 'test' 的存储大小未知。我知道我必须为测试定义 space 但我应该在哪里写这个以及如何写?谢谢大家。

替换:

struct list_t test;

slist_t test;

您的类型名为 struct single_list,您还可以使用您创建的名为 slist_t.

的别名

请注意,您随后想要传递一个指向该对象的指针:

init(&test);