c程序改错 没有错误 可是没法运行 可以帮忙改一下嘛

#include
#define MAXVEX 100
#define INFINITY 65535
typedef int edgetype ;
typedef char vertextype;
typedef struct {
vertextype vexs[MAXVEX];
edgetype arc[MAXVEX][MAXVEX]; //邻接矩阵储存的结构
int numvertexes ,numedges;

}mgraph;

void createmgraph(mgraph *g)
{
int i,j,k,w;
printf("输入顶点数和边数:\n");
scanf("%d%d",&g->numvertexes,&g->numedges);
printf("输入顶点数和边数:\n");//读入顶点信息
for(i=0;inumvertexes;i++)

scanf("%c",g->vexs[i]);

for(i=0;i<g->numvertexes;i++)
    for (j=0;j<g->numvertexes;j++)                //初始化邻接矩阵
        g->arc[i][j]=INFINITY;

for(k=0;knumedges;j++)
{
printf("输入边(vi,vj)上的下标i,j,和权w\n");
scanf("%d%d%d",&i,&j,&w);
g->arc[i][j]=w;
g->arc[j][i]=w;
}
}

void main()
{
int i,j;
mgraph* g;
createmgraph(g);
printf("输出图的所的边\n");
for(i=0;inumedges;i++)
for(j=0;jnumedges;j++)
{
if(g->arc[i][j]!=0)
printf("图的边为(%d,%d),权值为%d",i,j,g->arc[i][j]);
}
}

还有定义的那个图g 它是一个指针变量 意思是指向定义的那个图的变量对吧 那么调用那个函数的时候 函数名后面括号里面需要写形参的类型嘛?形参是指针那我写*g 还是g?这个程序还有一个警告 求好心人帮忙

是拷贝出错了吧,好多错误。
主要错误g没有初始化。修改如下:

 #include <stdio.h>
#include<stdlib.h>

#define MAXVEX 100
#define INFINITY 65535
typedef int edgetype ;
typedef char vertextype;
typedef struct {
    vertextype vexs[MAXVEX];
    edgetype arc[MAXVEX][MAXVEX]; //邻接矩阵储存的结构
    int numvertexes ,numedges;
}mgraph;
void createmgraph(mgraph *g)
{
    int i,j,k,w;
    printf("输入顶点数和边数:\n");
    scanf("%d%d",&g->numvertexes,&g->numedges); 
    printf("输入顶点数和边数:\n");//读入顶点信息
    for(i=0;i<g->numvertexes;i++)//修改

        scanf("%c",g->vexs[i]);
    for(i=0;i<g->numvertexes;i++)//修改
        for (j=0;j<g->numvertexes;j++)                //初始化邻接矩阵
            g->arc[i][j]=INFINITY;
    for(k=0;k<g->numedges;j++)//修改
    {
        printf("输入边(vi,vj)上的下标i,j,和权w\n");
        scanf("%d%d%d",&i,&j,&w);
        g->arc[i][j]=w;
        g->arc[j][i]=w;
    }
}
void main()
{
    int i,j;
    mgraph* g;
    g=(mgraph*)malloc(sizeof(mgraph));//增加初始化
    createmgraph(g);
    printf("输出图的所的边\n");
    for(i=0;i<g->numedges;i++)//修改
        for(j=0;j<g->numedges;j++)//修改
        {
            if(g->arc[i][j]!=0)
                printf("图的边为(%d,%d),权值为%d",i,j,g->arc[i][j]);
        }

    if(g) free(g);//增加
}