C语言读文件出现的错误

来源:百度知道 编辑:UC知道 时间:2024/06/14 18:44:21
typedef struct{
int adj; /* 权值 */
}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; /* 二维数组 */

typedef struct course{
char courname[20];
struct course *next;
}course;

typedef struct{
course cou[MAX_VERTEX_NUM]; /* 顶点向量 */
AdjMatrix arcs; /* 邻接矩阵 */
int vernum,arcnum; /* 图的当前顶点数和弧数 */
}MGraph;
void CreatDG(MGraph *G){
int i,j,p=0,n=0,q=0;
(*G).vernum=11;
(*G).arcnum=11;

FILE *fp;
if((fp=fopen("course_list.txt","r"))==NULL){
printf("can't open");
return;
}
fp=fopen("course_list.txt","r");
for(i=0;i <=11;i++){
fscanf(fp,"%s\n",&(*G).cou[i].courname);
printf("%s\n",(*G).cou[i].courname);
}
for(i=0;i <=11;i++)
for(j=0;j <=11;j++){
(*G).arcs[i][j].adj=0;
printf("arcs[%d][%d].adj=%d\n",i,j,(*G).arcs[i][j].adj);
}/

下标越界,11个顶点,for循环里面应该是<11吧

如果是c语言的话,这句FILE *fp;,应放到对应的函数开头的地方声明。
c的声明语句必须放到函数开始的位置。
更改之后,我用vc6.0编译没错。