Unhandled exception in Graph.exe:0xC0000005:Access Violation
Status CreateDN(MGraph *g,int flag)
{
int i,j;
ArcNode *p;
(*g).vexnum=G.vexnum;
(*g).arcnum=G.arcnum;
for(i=0;iAir.Distance;
break;
case 2: (*g).arcs[i][j].adj=p->Train.TNum[Min(p->Train)].Expense;
break;
case 3: (*g).arcs[i][j].adj=p->Air.TNum[Min(p->Air)].Expense;
}
}
}
}
/* i=LocateVex(*G,va);
j=LocateVex(*G,vb);
(*G).arcs[i][j].adj=w; */
for(i=0;i
简单看了下,程序风格还不错,只是看得出来,你比较害怕使用指针阿,我看了下提几个建议:对你可能会有帮助:
第一:函数参数要检查,尤其是指针参数,必须检查,否则就容易出现你现在的问题了:0xC0000005:Access Violation (使用指针之前一定要检查它是否为空)
比如说你的Status CreateDN(MGraph *g,int flag)
第一件事,检查下你传入的参数是否合法,可以这样
{
if (g == NULL) return;
}
还有一个问题,你(*g).vexnum这个用法比较别扭,直接用g->vexnum就可以了.这反映出你比较怕指针
第二:malloc了一块内存,注意free.
你可以看下林锐博士写的,对你有很大帮助.
因为第二次循坏p=p->nextarc了,那可能p->nextarc指向的内存你没有控制好,可能是不能读写的.你可以调式看这个地址里面的内容阿,是否是你所要的东西.
-
点赞数:0回答数:1
-
点赞数:0回答数:1
-
点赞数:0回答数:1
-
点赞数:0回答数:1
-
点赞数:0回答数:1
-
点赞数:0回答数:2
-
点赞数:0回答数:4
-
点赞数:0回答数:1
-
点赞数:0回答数:2
-
点赞数:0回答数:1

最新问答: 引号在作文之中占几格,第一个格可以用引号吗,最后一个格如果用引号写在哪里 已知AD、BE、CF分别是△ABC的高、中线和角平分线,则下面的推理中,错误的是( )A、∵AD是高,∴∠ADC=90° 有没有只有选择题。完形填空,阅读题,对号入座,作文有没有没关系这样的英语练习册 最终,那些话成了谎言,你还是欺骗了我……用英语怎么翻译 字母开头5-30位,字母,数字, 一个挂钟时针长6cm,分针长8cm.从七点到八点,分针的针尖和时针的针尖经过路线的长度各是多少 当你面向南,向右转三次,向左转两次,此时你面向? 抵不过时光的英文怎么说 淬灭是什么意思啊 为什么空气会流动 一道关于化学方程式的计算题,要有解题过程(最好格式规范点),现在就要, 修一条路,当修到全长的[3/7]时,距离这条路的中点还有200米,这条路全长多少米? 在线求指导:下列发生在法国资产阶 K2Cr2O7中Cr的化合价为什么是正6? 这一题选哪个答案 英语翻译1.当意识到自己的失败,他突然间哭了起来(break into)2.确认自己能够按时完成工作,他先休息了会儿(s 几个成语问题 (成语中要带有动物的名称) 子贡问曰:“孔文子何以谓之文也?” 子曰:“敏而好学,不耻不问,是以谓之文也!”翻译 ∫∫s(x+y+z)ds,其中s为上半球面z=√a^2-x^2-y^2 问几道数列题1.凸多边形各内角度数成等差数列,最小角为120,公差为5,则边数为A.16 B.9 C.16或9 D.12