C编程:无效应用‘;尺寸’;到不完整类型‘;Tipo{aka struct ElemSCl}

C编程:无效应用‘;尺寸’;到不完整类型‘;Tipo{aka struct ElemSCl},c,C,我在学习,这是一个简单的测试 症状自评量表 #ifndef sclh #定义sclh 类型定义结构{ int值;}listnote; 结构元素{ 列表注释信息; struct ElemSCL*下一步; }; 类型定义结构ElemSCl Tipo; 类型def Tipo*Mangiato; void Addscl(Mangiato*scl,int e); #恩迪夫 证明 #包括“scl.h” #包括 #包括 //创建节点 无效添加scl(Mangiato*scl,int e){ 曼吉亚托温度;

我在学习,这是一个简单的测试

症状自评量表
#ifndef sclh
#定义sclh
类型定义结构{
int值;}listnote;
结构元素{
列表注释信息;
struct ElemSCL*下一步;
};
类型定义结构ElemSCl Tipo;
类型def Tipo*Mangiato;
void Addscl(Mangiato*scl,int e);
#恩迪夫
证明
#包括“scl.h”
#包括
#包括
//创建节点
无效添加scl(Mangiato*scl,int e){
曼吉亚托温度;
温度=*症状自评量表;
*scl=(Tipo*)malloc(sizeof(Tipo));
*(scl)->信息值=e;
*(scl)->next=温度;
}
Main.c
#包括
#包括
#包括“scl.h”
int main()
{
Tipo*scl=NULL;
Addscl(和scl,3);
printf(“%d”,*(scl)->信息值);
}
返回0;
}
我得到以下错误:
main.c:9:22:错误:取消引用指向不完整类型“Tipo{aka struct ElemSCl}”的指针
printf(“%d”,*(scl)->信息值);
^~
c:在函数“Addscl”中:
prove.c:9:29:错误:“sizeof”对不完整类型“Tipo{aka struct ElemSCl}”的应用无效
*scl=(Tipo*)malloc(sizeof(Tipo));
^~~~
prove.c:10:7:error:“*scl”是指针;你想用'->'吗?
*(scl)->信息值=e;
^~
->
prove.c:11:7:error:“*scl”是指针;你想用'->'吗?
*(scl)->next=温度;
^~
->
表达式
*(scl)->info.value
*(scl->info.value)
相同。即,您取消引用
成员

您需要
(*scl)->info.value
来取消对
scl
指针的引用


至于
sizeof
问题,您有

 struct ElemSCL { ... };

请密切注意拼写。。。在
typedef
中使用小写的
l
,它应该是大写的
l

typedef struct ElemSCL Tipo;
表达式
*(scl)->info.value
*(scl->info.value)
相同。即,您取消引用
成员

您需要
(*scl)->info.value
来取消对
scl
指针的引用


至于
sizeof
问题,您有

 struct ElemSCL { ... };

请密切注意拼写。。。在
typedef
中使用小写的
l
,它应该是大写的
l

typedef struct ElemSCL Tipo;

C和C++是不同的编程语言。如果你用C语言编写代码,读,然后。如果你在C++中读代码就好了。如果您使用编译器,请阅读它的文档。从现有的用C编写的开源软件的源代码中获得灵感(例如,或…)注意,您的程序不会处理这个问题。C和C++是不同的编程语言。如果你用C语言编写代码,读,然后。如果你在C++中读代码就好了。如果您使用编译器,请阅读它的文档。从现有的用C编写的开源软件的源代码中获得灵感(例如,或…)注意,您的程序不会处理这个问题。顺便说一句,作为
gcc-Wall-Wextra-g
调用的最新编译器会发出多次警告。顺便说一句,作为
gcc-Wall-Wextra-g
调用的最新编译器会发出多次警告