图的存储结构 c的内存冲突问题

图的零阶矩阵 运行此处出现这个问题

img


#include <stdio.h>
#define INFINITY  60000
#define MVNum 100
typedef int Status;
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0

typedef char VerTexType;
typedef int ArcType;
typedef struct {
    VerTexType vexs[MVNum];
    ArcType arc[MVNum][MVNum];
    int vexnum, arcnum;
} Q;


Status GreatGraph(Q  *G)
{
    int i, k;
    printf("请输入你的图所含顶点数和边数:\n");
    scanf("%d %d", &(G->vexnum), &(G->arcnum));
    printf("您输入的:%d %d\n", G->arcnum, G->vexnum);
    fflush(stdin);
    for (int i = 0; i < G->vexnum; i++)
    {
        printf("请输入顶点:");
        G->vexs[i] = getchar();
        if (getchar() != '\n')
            continue;

    }

    for (i = 0; i < G->vexnum; i++)
        for (k = 0; k < G->vexnum; i++)
            *(*(G->arc+i)+k) = INFINITY;

    for (i = 0; i < G->arcnum; i++)
    {
        VerTexType v1, v2;
        ArcType w;
        printf("请输入无向图的边的信息:v1 v2 w:\n");
        scanf("%c %c %d", &v1, &v2,&w);
        int l = Locate(*G, v1);
        int j = Locate(*G, v2);
        G->arc[k][j] = w;
        G->arc[j][k] = G->arc[k][j];



    }
    return OK;
}

int Locate(Q G, VerTexType C)
{
    int i;
    for (i = 0; i < G.vexnum; i++)
        if (C == G.vexs[i])
            return i;
     
    return -1;

}



int main()
{
    Q L;
    GreatGraph(&L);
    for (int i = 0; i < L.vexnum; i++)
    {
        printf("%c", L.vexs[i]);
    }

    return 0;
}