我对c ++中的枚举有问题 我不明白为什么如果我使用相同的枚举定义两个变量,它给EXC_BAD_ACCESS 你知道为什么吗?如果我只定义一个变量就可以了 这是代码......
enum directions{
UP,
DOWN,
RIGHT,
LEFT,
IN,
OUT,
FW,
RW
};
class Snake
{
private:
enum directions head_dir;
enum directions head_dir_ask; //if I comment this... the program work fine..
(... other stuff...)
};
感谢您提前的帮助
代码大约有10个文件......发帖时间太长了
反正...
我正在使用OpenGL和Qt
MainProject::MainProject(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainProject)
{
ui->setupUi(this);
startTimer(1000);
glwidget = new MyGLBox(ui->centralWidget);
ui->GLlayout->addWidget(glwidget); // <line where the complier retruns the EXC_BAD_ACCESS
}
MyGLBox构造函数:
MyGLBox::MyGLBox(QWidget *parent):QGLWidget(parent){
XRot = YRot = ZRot = 0;
theta1 = theta2 = phi = 0;
}
答案 0 :(得分:0)
您的问题中没有足够的信息可以指出您的任何特定方向。但是,几乎可以肯定的是,因为代码中的某个 else ,有一些指针操作变得疯狂并最终访问未定义的内容。更改对象的内存布局(例如添加或删除未使用的成员)可以暂时屏蔽此类错误 - 这不是一件好事,因为如果阻止错误,它只是将其转换为高度可见和可调试的崩溃事件更微妙,更难以检测,但仍然是一个错误,其最终影响可能更令人困惑。
您应该在调试器中运行代码,并在获得异常时检查它正在执行的操作。 (并且为了您自己,不以任何方式更改程序,使崩溃消失,直到您理解为什么它崩溃并且确定您已经修复了根本原因)。