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
你提供的代码有几处错误,我帮你修复一下:
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++;
}
}
修复的地方如下:
info是一个字符数组,应该使用new char来分配内存。strlen函数需要传入一个字符数组作为参数,所以应该传入ch。edges是一个二维数组,应该使用&r来获取输入的值。
希望这能帮到你
原文地址: http://www.cveoy.top/t/topic/iyUa 著作权归作者所有。请勿转载和采集!