我正在Linux上构建一个C测试程序。
为什么下面的代码编译失败?在list_t
被类型定义之后,编译器不应该稍后理解它与struct list
是同一类型吗?
尝试使用malloc((创建新列表项失败,error: invalid type argument
#include <stdio.h>
#include <stdlib.h>
typedef struct list
{
struct list *next_ptr;
int value;
}list_t;
int main()
{
list_t myList;
myList->next_ptr = malloc(sizeof(list_t)); // This fails
return 0;
}
myList->next_ptr
应该是myList.next_ptr
,因为myList
不是指针。