user-0 提问: 结构体类型的指针变量无法用于表达式，标识符为申明等错误

回复:
user: user-0
content: 引用 1 楼 自信男孩 的回复： #include"DynamicList.h" //初始化链表 LinkList* Init_LinkList() {     LinkList* List=(LinkList*)malloc(sizeof(LinkList));     List->size=0;     List->head=(LinkNode*)malloc(sizeof(LinkNode));     List->head->data=NULL;     List->head->next=NULL;      return List; } //指定位置插入 void Insert_LinkList(LinkList* List,int Pos,void* data) {     if(List==NULL||data==NULL)     {         return;     }     if(Pos<0||Pos>List->size)     {         Pos=List->size;     }     //创建新的结点     LinkNode* Pnew=(LinkNode*)malloc(sizeof(LinkNode));     Pnew->data=data;     Pnew->next=NULL;      LinkNode* Pcur=List->head;     for(int i=0;i<Pos;i++)     {         Pcur=Pcur->next;     }     Pnew->next=Pcur->next;     Pnew->next=Pnew;      List->size++;  } //删除 void Remove_LinkList(LinkList* List,int Pos) {     if(List==NULL||Pos<0||Pos>=List->size)     {         return;     }     LinkNode* Pcur=List->head;     for(int i=0;i<Pos;i++)     {         Pcur=Pcur->next;     }      //缓存删除的结点     LinkNode* Pdel=Pcur->next;      Pcur->next=Pdel->next;     free(Pdel);      List->size--; } //获得链表的长度 int Size_LinkList(LinkList* List) {     return List->size; } //查找 int Find_LinkList(LinkList* List,void* data) {     if(List==NULL||data==NULL)     {         return -1;     }      LinkNode* Pcur=List->head->next;     int i=0;     while(Pcur!=NULL)     {         //if(Pcur->data=data)break;         if(Pcur->data==data)break;   //判断语句不要写成赋值语句         Pcur=Pcur->next;         i++;     }     return i; } //返回第一个结点 void* Front_LinkList(LinkList* List) {     return List->head->next; } //打印链表结点 void Print_LinkList(LinkList* List,PRINTLINKNODE print) {     if(List==NULL)     {         return;     }     LinkNode* Pcur=List->head->next;     while(Pcur!=NULL)     {         print(Pcur->data);         Pcur=Pcur->next;     } } //释放 void Free_LinkList(LinkList* List) {     if(List==NULL)     {         return;     }     LinkNode* Pcur=List->head;     while(Pcur!=NULL)     {         LinkNode* Pnext=Pcur->next;         free(Pcur);         Pcur=Pnext;     }     List->size=0;     free(List); }   #define _CRT_SECURE_NO_WARNINGS #include"DynamicList.h"  typedef struct PERSON{     char name[64];     int age;     int score; }Person;  //打印函数 void Myprint(void* data) {     Person* p=(Person*)data;     //printf("NAME:%S,AGE:%d,SCORE:%d\n",p->name,p->age,p->score);     printf("NAME:%s,AGE:%d,SCORE:%d\n",p->name,p->age,p->score);   //%S改成%s }  int main() {     LinkList* List=Init_LinkList();      Person p1={"A",18,100};     Person p2={"B",19,90};     Person p3={"C",20,80};      Insert_LinkList(List,0,&p1);     Insert_LinkList(List,0,&p2);     Insert_LinkList(List,0,&p3);      Print_LinkList(List,Myprint);      Free_LinkList(List);      system("pause");      return 0; } 供参考～  测试没有你贴出的这些问题，源码里有两处错误，对比一下找出自己的问题。  检查一下你的头文件名是否正确换成.cpp编译没有问题，.c一直出错

user: user-1
content: #include"DynamicList.h" //初始化链表 LinkList* Init_LinkList() {     LinkList* List=(LinkList*)malloc(sizeof(LinkList));     List->size=0;     List->head=(LinkNode*)malloc(sizeof(LinkNode));     List->head->data=NULL;     List->head->next=NULL;      return List; } //指定位置插入 void Insert_LinkList(LinkList* List,int Pos,void* data) {     if(List==NULL||data==NULL)     {         return;     }     if(Pos<0||Pos>List->size)     {         Pos=List->size;     }     //创建新的结点     LinkNode* Pnew=(LinkNode*)malloc(sizeof(LinkNode));     Pnew->data=data;     Pnew->next=NULL;      LinkNode* Pcur=List->head;     for(int i=0;i<Pos;i++)     {         Pcur=Pcur->next;     }     Pnew->next=Pcur->next;     Pnew->next=Pnew;      List->size++;  } //删除 void Remove_LinkList(LinkList* List,int Pos) {     if(List==NULL||Pos<0||Pos>=List->size)     {         return;     }     LinkNode* Pcur=List->head;     for(int i=0;i<Pos;i++)     {         Pcur=Pcur->next;     }      //缓存删除的结点     LinkNode* Pdel=Pcur->next;      Pcur->next=Pdel->next;     free(Pdel);      List->size--; } //获得链表的长度 int Size_LinkList(LinkList* List) {     return List->size; } //查找 int Find_LinkList(LinkList* List,void* data) {     if(List==NULL||data==NULL)     {         return -1;     }      LinkNode* Pcur=List->head->next;     int i=0;     while(Pcur!=NULL)     {         //if(Pcur->data=data)break;         if(Pcur->data==data)break;   //判断语句不要写成赋值语句         Pcur=Pcur->next;         i++;     }     return i; } //返回第一个结点 void* Front_LinkList(LinkList* List) {     return List->head->next; } //打印链表结点 void Print_LinkList(LinkList* List,PRINTLINKNODE print) {     if(List==NULL)     {         return;     }     LinkNode* Pcur=List->head->next;     while(Pcur!=NULL)     {         print(Pcur->data);         Pcur=Pcur->next;     } } //释放 void Free_LinkList(LinkList* List) {     if(List==NULL)     {         return;     }     LinkNode* Pcur=List->head;     while(Pcur!=NULL)     {         LinkNode* Pnext=Pcur->next;         free(Pcur);         Pcur=Pnext;     }     List->size=0;     free(List); }   #define _CRT_SECURE_NO_WARNINGS #include"DynamicList.h"  typedef struct PERSON{     char name[64];     int age;     int score; }Person;  //打印函数 void Myprint(void* data) {     Person* p=(Person*)data;     //printf("NAME:%S,AGE:%d,SCORE:%d\n",p->name,p->age,p->score);     printf("NAME:%s,AGE:%d,SCORE:%d\n",p->name,p->age,p->score);   //%S改成%s }  int main() {     LinkList* List=Init_LinkList();      Person p1={"A",18,100};     Person p2={"B",19,90};     Person p3={"C",20,80};      Insert_LinkList(List,0,&p1);     Insert_LinkList(List,0,&p2);     Insert_LinkList(List,0,&p3);      Print_LinkList(List,Myprint);      Free_LinkList(List);      system("pause");      return 0; } 供参考～  测试没有你贴出的这些问题，源码里有两处错误，对比一下找出自己的问题。  检查一下你的头文件名是否正确