struct ll
{
int data;
struct ll *next;
};
struct ll *ptr,*root;
root = (struct ll *)malloc(sizeof(struct ll)); /* This line */
if(root == NULL)
{
printf("FAILURE");
exit(0);
}
root = NULL;
ptr = NULL;
编写上面的代码是为了声明和初始化指向结构 ll 的指针,这是一个链表。 以粗体显示的行在编译期间显示以下警告: 数据定义没有类型或存储类[默认启用] ****, 类型默认为' int'声明' root'
答案 0 :(得分:2)
在C中的任何函数之外,不允许使用语句(声明除外)。
由于您尚未为root
指定类型,因此错误消息显示root
的类型默认为int
。显然这不是想要的。
将代码放在函数中(例如main()
)并编译。
此外,
1)不要将malloc()
的结果视为useless and error-prone.
2)您正在丢失分配的指针(使用malloc()
),因为您之后立即分配NULL
。但我不确定你打算用它做什么
3)包含您使用的库函数的标题(<stdlib.h>
和malloc
{/ 1}}