【发布时间】:2010-04-12 19:15:53
【问题描述】:
我不明白这是怎么发生的。这是我的代码的一部分..
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 编译它 任何帮助将不胜感激..
【问题讨论】:
标签: c memory stack memory-address