存储大小未知
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);
我正在尝试学习 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);