Unhandled exception in Graph.exe:0xC0000005:Access Violation

1个回答

  • 简单看了下,程序风格还不错,只是看得出来,你比较害怕使用指针阿,我看了下提几个建议:对你可能会有帮助:

    第一:函数参数要检查,尤其是指针参数,必须检查,否则就容易出现你现在的问题了:0xC0000005:Access Violation (使用指针之前一定要检查它是否为空)

    比如说你的Status CreateDN(MGraph *g,int flag)

    第一件事,检查下你传入的参数是否合法,可以这样

    {

    if (g == NULL) return;

    }

    还有一个问题,你(*g).vexnum这个用法比较别扭,直接用g->vexnum就可以了.这反映出你比较怕指针

    第二:malloc了一块内存,注意free.

    你可以看下林锐博士写的,对你有很大帮助.

    因为第二次循坏p=p->nextarc了,那可能p->nextarc指向的内存你没有控制好,可能是不能读写的.你可以调式看这个地址里面的内容阿,是否是你所要的东西.