我不明白这是怎么发生的。这是我的代码的一部分..
int isGoal(Node *node, int startNode){
int i;
.
.
}
当我使用 gdb 进行调试时,我发现“i”被分配在先前分配的内存地址上。
(gdb)print &node->path->next
$26 = (struct intNode **) 0xffbff2f0
(gdb) print &i
$22 = (int *) 0xffbff2f0
node->path->next 已经在这个函数之外定义了。但是正如您所看到的,它们共享相同的地址,当i计数器更改时,在某些时候使指针指向另一个位置。
我在 solaris 平台上使用 gcc 编译它 任何帮助将不胜感激..