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 的指针,它是一个链表。 粗体显示的行在编译期间显示以下警告: 数据定义没有类型或存储类[默认启用]****, 在“root”的声明中类型默认为“int”
最佳答案
在 C 的任何函数之外都不允许有语句(声明除外)。
由于您没有为 root
指定类型 , 错误消息说 root
的类型默认为 int
.显然这不是我们想要的。
将您的代码放入函数中(例如 main()
)并编译。
此外,
1) 不要转换 malloc()
的结果因为它是useless and error-prone.
2)在分配 malloc()
时,您丢失了分配的指针(带 NULL
)之后立马。但我不确定你打算用它做什么。
3) 包括您使用的库函数的 header (<stdlib.h>
用于 malloc
和 exit
)
关于c - 类型转换指向结构的指针时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26829221/