Название: [РЕШЕНО] Запись текстуры в нулевой массив (Bug?) Отправлено: Disa от Январь 17, 2012, 14:33 Добрый день. Решил поделиться наблюдением и заодно спросить у экспертов.
Имеется класс для виджета c OpenGL, вот кусок кода из его хедер-файла: Код: class editorScene : public QGLWidget { В файле с реализацией методов помимо всех есть реализация наследованного метода для курсора мыши: Код: void editorScene::mouseMoveEvent(QMouseEvent* pe) { И так же есть метод загрузки текущий для загрузки текущей текстуры (можно было сделать конечно как дружественную хелпер-функцию, но не суть): Код: void editorScene::LoadGLTextures(const QString &filename) { Немсотря на то, что у нас current_texture это массив из 0 эллементов, все компилируется (qt 4.7.4 (qtCreator 2.3, g++ 4.2) / macOs 10.6). Причем все еще при этом рисуется! Но координаты мыши по оси Oy в итоге считаются совершенно фантастическим образом. При замене в объявлении current_texture[0] на current_texture[1] все работает как часы. Точно не уверен, но видимо при компиляции все же под массив выделяется почти достаточно памяти для текстуры одной, но часть еще дописывается куда-то в ptr_mouse_position. Название: Re: Запись текстуры в нулевой массив (Bug?) Отправлено: Пантер от Январь 17, 2012, 14:36 Ты портишь память. В чем вопрос-то?
Название: Re: Запись текстуры в нулевой массив (Bug?) Отправлено: Disa от Январь 17, 2012, 14:45 Всегда думал, что в таких случаях должна быть утечка с аварийным завершение (или что-то типа этого), а не дальнейшая запись в память. Вопрос в том, как это сработало, да и при том почти правильно? :)
За ранее благодарен. Название: Re: Запись текстуры в нулевой массив (Bug?) Отправлено: Пантер от Январь 17, 2012, 14:50 Ты просто сделал запись в другое место. Аварийное завершение тебе никто не обещал, но данные ты похерил. В общем, все тут зависит от фазы луны, не делай так больше.
Название: Re: Запись текстуры в нулевой массив (Bug?) Отправлено: mutineer от Январь 17, 2012, 14:52 Нет, за запись за пределы массива динозавр тебя не укусит (то бишь ниче никуда сразу не вылетит), а вот потом будет очень хреново искать ошибку
Название: Re: Запись текстуры в нулевой массив (Bug?) Отправлено: Disa от Январь 17, 2012, 15:00 Спасибо большое за ответы. Да я бы с удовольствием не делал бы, сам искал где-то 2а часа почему координаты мыши неправильно считаются. :)
|