【发布时间】:2009-03-05 04:55:35
【问题描述】:
我有一个函数,其中函数参数之一是整数。在函数调用期间,我将枚举数据类型传递给该函数。使用 gcc 构建后,对函数内部的 INTEGER 变量的任何访问都会导致分段错误。
示例代码:
void somefun (unsigned int nState)
{
switch (nState) // <-- Crashes on this line
{
//
// functionality here ...
//
}
}
enum {
UNDEFINED = -1,
STATE_NICE,
STATE_GREEDY
} E_STATE;
int main (int argc, char *argv [])
{
somefun (STATE_NICE);
}
【问题讨论】:
-
用 -g 和 -Wall 编译它并发布任何警告。此外,在 gdb 中运行它以确定它究竟是如何崩溃的。