存储大小未知

时间:2015-09-13 00:21:44

标签: c memory struct size storage

我正在尝试学习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'的存储大小未知。我知道我必须定义测试空间,但我应该在哪里写这个以及如何编写?谢谢你们。

1 个答案:

答案 0 :(得分:1)

替换:

struct list_t test;

slist_t test;

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

请注意,您希望传递指向对象的指针:

init(&test);