【发布时间】:2013-04-01 18:08:29
【问题描述】:
我最近在开发应用程序时遇到了一个非常奇怪的段错误。基本上,如果我将另一个变量添加到我的一个结构中,则在执行时会导致段错误,没有明显的原因。删除此变量可立即解决问题。结构如下:
typedef struct Note {
char cNote;
unsigned int uiDuration;
unsigned int uiVelocity;
};
只要我添加一个
long lStartTime;
结构中任何位置的变量,代码照常编译,但会引发分段错误。 GDB 的回溯在我什至不使用的一些不起眼的 WIN 方法中丢失了。
有什么想法吗?
谢谢!
【问题讨论】:
-
您在某处有未定义的行为。添加此成员只是使其更加明显。您是否做过与
Notes 相关的任何涉及手动内存管理或访问数组的事情?开始寻找那里。 -
在 Joseph 的评论中添加一点 - 很可能某些代码在内存管理或数组访问方面做了一些不利的事情,但与
Note没有任何关系。未定义行为的乐趣之一是,当编辑完全不相关的代码时,症状可能会发生变化。
标签: c++ struct segmentation-fault