rror,应该是visual studio 的2010编译器语法问题:求高手

:\mycode\linjiebiao_youxiangtu.c(32): error C2275: “linklist”: 将此类型用作表达式非法
1> d:\mycode\linjiebiao_youxiangtu.c(10) : 参见“linklist”的声明
1>d:\mycode\linjiebiao_youxiangtu.c(32): error C2146: 语法错误: 缺少“;”(在标识符“pt1”的前面)
1>d:\mycode\linjiebiao_youxiangtu.c(32): error C2065: “pt1”: 未声明的标识符
1>d:\mycode\linjiebiao_youxiangtu.c(39): error C2065: “pt1”: 未声明的标识符
1>d:\mycode\linjiebiao_youxiangtu.c(39): warning C4047: “=”:“int”与“lib3 *”的间接级别不同
源码:

#include <stdio.h>
#include <stdlib.h>
#define MAX 100
typedef char CHAR[3];

typedef struct node{
  int num,weight;
   struct node *next;
}lib3;
typedef lib3 *linklist;
    typedef struct{
  CHAR data_char;
  lib3 *ptr;
}lib2;

typedef struct{
  int n,e;
  lib2 array[MAX];
}lib1;

void Create (lib1 *g)
{
    int b,t,w,i,j;
  printf("please input the n and e\n");
  scanf("%d,%d",&g->n,&g->e);
  printf("\nplease input the char (n ge)\n");
  for(i =0 ;i< g->n; i++)
  {
    scanf("%s",g->array[i].data_char);
     g->array[i].ptr = NULL;
  }
 linklist pt1;

  for(i =0 ;i< g->e ;i++)
    {
      printf("\nplease input the start -> end :weight\n");
      printf(", intervers enter\n");
      scanf("%d,%d,%d",&b,&t,&w);
      pt1 = (lib3*)malloc(sizeof (lib3));
      pt1 -> num = t;
      pt1 -> weight = w;
      pt1 ->next = g ->array[b].ptr;
      g->array[b].ptr = pt1;
}

}

void Display(lib1*g)
{
  int i;
  lib3 *ptr;
  printf("\nthe linjiebiao is the following \n");
  for(i =0;i < g-> n;i++)
    {
      printf("|%d|%s|",i,g->array[i].data_char);
      ptr = g->array[i].ptr;
    while(ptr != NULL)
    {
      printf(" [%d,%d]->weight(%d)",i,ptr->num,ptr->weight);
      ptr = ptr ->next;
}
      printf("\n");
}
}
int main()
{
  lib1 *g;
  g = (lib1*) malloc (sizeof (lib1*));
  Create(g);
  Display(g);
  system("pause");
 return 0;
}

你可能感兴趣的:(rror,应该是visual studio 的2010编译器语法问题:求高手)