查错 指针为何被修改了
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都是内置类型,你必须自己定义构造函数初始化它们