1

我最近在开发我的应用程序时遇到了一个非常奇怪的段错误。基本上,如果我将另一个变量添加到我的一个结构中,则在执行时会导致段错误,没有明显的原因。删除此变量可立即解决问题。结构如下:

typedef struct Note {
    char cNote;
    unsigned int uiDuration;
    unsigned int uiVelocity;
};

只要我添加一个

long lStartTime;

结构中任何位置的变量,代码照常编译,但会引发分段错误。GDB 的回溯在我什至不使用的一些不起眼的 WIN 方法中丢失了。

有任何想法吗?

谢谢!

4

1 回答 1

2

我看到了几种可能的解释:

  1. 某处的某处假设它struct具有一定的大小。改变尺寸会破坏事物。
  2. 您可能有某种内存错误,它是通过您更改内存中事物的布局而暴露出来的。尝试使用 valgrind 或 Purify 之类的工具。
  3. 您正在更改struct头文件中的 ,但未能重建所有使用struct.
于 2013-04-01T18:10:33.040 回答