Перечисление C ++ EXC_BAD_ACCESS - PullRequest
       0

Перечисление C ++ EXC_BAD_ACCESS

0 голосов
/ 21 августа 2011

У меня проблема с перечислениями в 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;
}

1 Ответ

0 голосов
/ 21 августа 2011

В вашем вопросе недостаточно информации, чтобы указать вам какое-либо конкретное направление.Тем не менее, это почти наверняка, потому что где-то else в вашем коде есть некоторая манипуляция указателем, которая сходит с ума и приводит к получению чего-то неопределенного.Изменение расположения объектов в памяти (например, добавление или удаление неиспользуемого элемента) может временно маскировать такую ​​ошибку - что не очень хорошо, потому что вместо этого, если предотвращает ошибку, она просто преобразует ее извидимое и отлаживаемое аварийное завершение чего-то более тонкого и более трудного для обнаружения, но все же ошибки, чьи возможные последствия могут быть гораздо более затруднительными.

Вы должны запустить свой код в отладчике и проверить, что он делает, когда получитеисключение.(И ради вас самих, не * меняйте , измените программу любым способом, который устранит сбой, пока вы не поймете , почему произошел сбой, и уверены, что вы устранили основную причину).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...