我不明白这是如何发生的。这是我的代码部分..分配的内存地址冲突
int isGoal(Node *node, int startNode){
int i;
.
.
}
当我调试这个用gdb我发现,“我”在先前已分配的内存地址分配。
(gdb)print &node->path->next
$26 = (struct intNode **) 0xffbff2f0
(gdb) print &i
$22 = (int *) 0xffbff2f0
node-> path-> next已经在这个函数之外定义了。但是你可以看到它们共享相同的地址,当计数器发生变化时,某些时候指针会指向另一个地方。
我使用gcc在Solaris平台 任何帮助将非常感激它编译..
第一个不是真正的可能性。您提供的第二个想法由他从gdb发布的数据证实。他在他的数据结构中使用了一个地址。你可以知道这一点,因为我明显在堆栈中。 – 2010-04-12 19:25:13
Thx的确,我创建了node-> path作为一个本地变量,之后我malloc它现在好了.. – Louis 2010-04-12 19:40:44