你提供的代码有几处错误,我帮你修复一下:

void creatematgraph(matgraph *&T, int n) {
    T = new matgraph;
    infotype ch[10];
    int k = 0, i = 0, j = 0;
    bool r;
    while (k < n) {
        scanf("%s", ch);
        T->vexs[k].no = k;
        T->vexs[k].info = new char[strlen(ch) + 1]; // 分配足够的内存
        strcpy(T->vexs[k].info, ch);
        k++;
    }
    while (i < n) {
        j = 0;
        while (j < n) {
            printf("Is the edge [%d][%d] exist?\n", i, j);
            scanf("%d", &r);
            T->edges[i][j] = r;
            j++;
        }
        i++;
    }
}

修复的地方如下:

  1. info 是一个字符数组,应该使用 new char 来分配内存。
  2. strlen 函数需要传入一个字符数组作为参数,所以应该传入 ch
  3. edges 是一个二维数组,应该使用 &r 来获取输入的值。

希望这能帮到你

void creatematgraphmatgraph &T int n T = new matgraph; infotype ch10; int k = 0 i = 0 j = 0; bool r; while k n scanfs ch; T-vexskno = k; T-vexskinfo = new strlen

原文地址: http://www.cveoy.top/t/topic/iyUa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录