首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分配的内存地址冲突

分配的内存地址冲突
EN

Stack Overflow用户
提问于 2010-04-12 19:15:53
回答 1查看 240关注 0票数 0

我不明白这是怎么回事。这是我代码的一部分。

代码语言:javascript
复制
   int isGoal(Node *node, int startNode){

       int i;
   .
   .
   }

当我使用gdb调试这个时,我发现'i‘是在以前分配的内存地址上分配的。

代码语言:javascript
复制
(gdb)print &node->path->next
$26 = (struct intNode **) 0xffbff2f0

(gdb) print &i
$22 = (int *) 0xffbff2f0

节点->path->next已在此函数之外定义。但是正如你所看到的,当i计数器改变时,它们共享相同的地址,这使得指针指向另一个位置。

我是用gcc在solaris平台上编译的,任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-12 19:21:13

有两种可能性:

您已经使用优化编译了address)

  • node->path

  • ,这使gdb很混乱(例如,可以对i进行优化,因此实际上没有任何i指向正确分配的内存。例如,可以将指针设置为指向堆栈上随后超出范围的对象。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2624695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档