typedef struct EdgeNode /* 边表结点 / -> typedef struct/* EdgeNode 边表结点 */将结构体程序改了一下为什么会出现56行和61行的警告?

图片说明

#include "stdio.h"    
#include "stdlib.h"   
#include "io.h"  
#include "math.h"  
#include "time.h"

#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXVEX 100 

typedef int Status; 
typedef char VertexType; 
typedef int EdgeType; 

typedef struct /***EdgeNode **/* 边表结点  */
{
    int adjvex;   
    EdgeType info;  
    struct EdgeNode *next;
}EdgeNode;

typedef struct VertexNode 
{
    VertexType data; 
    EdgeNode *firstedge;
}VertexNode, AdjList[MAXVEX];

typedef struct
{
    AdjList adjList; 
    int numNodes,numEdges; 
}GraphAdjList;


void  CreateALGraph(GraphAdjList *G)
{
    int i,j,k;
    EdgeNode *e;
    printf("输入顶点数和边数:\n");
    scanf("%d,%d",&G->numNodes,&G->numEdges); 
    for(i = 0;i < G->numNodes;i++)
    {
        scanf(&G->adjList[i].data);     
        G->adjList[i].firstedge=NULL;   
    }


    for(k = 0;k < G->numEdges;k++)
    {
        printf("输入边(vi,vj)上的顶点序号:\n");
        scanf("%d,%d",&i,&j); 
        e=(EdgeNode *)malloc(sizeof(EdgeNode)); 
        e->adjvex=j;                                     
        e->next=G->adjList[i].firstedge;    
        G->adjList[i].firstedge=e;                    

        e=(EdgeNode *)malloc(sizeof(EdgeNode)); 
        e->adjvex=i;                                        
        e->next=G->adjList[j].firstedge;    
        G->adjList[j].firstedge=e;                 
    }
}

int main(void)
{    
    GraphAdjList G;    
    CreateALGraph(&G);

    return 0;
}

应该是结构体里有指针的缘故,深层次原因就不懂了

typedef struct /***EdgeNode **/* 边表结点 /
->
typedef struct EdgeNode /
边表结点 */

至于你说的警告,我的编译器没有看到,检查下是否是结构体没有初始化或者i j下标越界方面,贴出警告信息我帮你看。