读书人

查错 指针为何被修改了解决方案

发布时间: 2012-03-23 12:06:21 作者: rapoo

查错 指针为何被修改了
b.firstedge在断点1处正常,但是在断点2处却指向了一个新地址,不明白是什么原因

C/C++ code
typedef struct EBox{VisitIf mark;                 int ivex,jvex;                struct EBox *ilink,*jlink;    }EBox;typedef char VertexType;typedef struct VexBox{VertexType data;EBox *[color=#FF0000]firstedge[/color];             }VexBox;void Count(int** count, [color=#FF0000]VexBox b[/color], int index)//断点1{    [color=#FF0000]EBox* search = b.firstedge;[/color]//断点2.............}


[解决办法]
函数里又COPY了一份,重新分配了一块内存
[解决办法]
EBox *firstedge;//这个指针你有没有初始化,如果没有初始化,他指向的地址不确定。这段地址里面的内容也是未知的。所以也没什么好奇怪的。
[解决办法]
因为你的类没有定义构造函数,ivex,jvex都是内置类型,你必须自己定义构造函数初始化它们

读书人网 >C语言

热点推荐