我正在开发一款游戏。在某些地方,有时我会收到分段错误,而在其他所有时间代码都可以正常工作。如果我再次运行游戏(收到分段错误后),它会恢复(没有任何代码更改)并且运行良好。但过了一段时间又会出现这种情况。
我尝试使用 GDB 对其进行调试。我得到以下信息:
- 有一个函数调用:func(&s.x),其中 s 是一个结构,x 是它的 int 类型成员。地址 (&s.x) 为 0xb3456721
- 在函数 func 中,参数中接收到的值为 0xb。
- 程序崩溃说无法访问 0xb 的内存。当我使用 GDB 打印变量时,我再次收到无法访问内存。
任何想法为什么会发生这种情况?