27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
|
||||||
1 | ||||||
SDL, surface, font непонятная ошибка24.11.2011, 23:49. Показов 1856. Ответов 15
Метки нет (Все метки)
Почему-то при вызове следующих функций программа просто вылетает. Вопрос - почему?
Без них утекает ~10-15 мб оперативки ежесекундно. Это понятно почему. Но вылет-то..
0
|
24.11.2011, 23:49 | |
Ответы с готовыми решениями:
15
Ошибка компиляции CGAL 4.11 - Triangulated Surface Mesh Skeletonization Как вывести текст на экран, используя библиотеку SDL TTF для SDL 2? Ошибка в приложении sdl SDL ошибка при рендере |
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
|
||||||
25.11.2011, 00:11 [ТС] | 3 | |||||
Если закомментить последние 2 строчки, то все работает нормально, только память течет если же оставить как есть, то программа запускается и буквально тут же вылетает
0
|
Заблокирован
|
||||||
25.11.2011, 00:27 | 6 | |||||
нужно проверить, завершились ли удачей эти две функции:
Есть подозрение, что:
0
|
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
|
|
25.11.2011, 00:32 [ТС] | 7 |
Bers, поверхность textsurf копируется на scr.surf в область loc.
loc - структура {x, y, w, h} в данной ф-ции значения w и h ни на что не влияют Сыроежка, знаешь, магия какая-то запускаю из одной папки - не работает скопипастил в другую папку, запустил - работает ума не приложу, в чем дело кстати, если запускать из папки, в которой не работает, то проверка указателей не исправляет проблемы
0
|
Заблокирован
|
|
25.11.2011, 00:36 | 8 |
Ksan, скорее всего, у тебя там где то почему то не ходит нужный файл. Шрифт не монтируется, или ещё что то. Кароче, указатели заранее не инициализированные содержат мусор. А потом ты пытаешься этот мусор подзатереть.
Сделай инициализацию указателей нулем в начале. А потом делай проверку, на успех каждой функции
0
|
Заблокирован
|
|
25.11.2011, 00:39 | 10 |
Успех этой функции зависит от того, надёт ли функция нужный файл. Путь к файлу относительный.
Может быть здесь то она и спотыкается в зависимости от местонахождения самой программы. Путь к файлу то относительный прописан. Проверь эту функцию на успешность в той ситуации, когда программа работает, и когда сваливается.
0
|
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
|
|
25.11.2011, 00:46 [ТС] | 11 |
Bers, у меня все нужные файлы правильно лежат. это я проверял
Сыроежка, я пробовал дебаггить таким способом. не помогло вообщем методом научного тыка смог подобрать правильную комбинацию ф-ций, которая вроде не приводит к вылету программы (нужно подольше потестить, что бы уверенно говорить). НО меня смущает 1 момент есть класс button. В нем 4 сурфейса и 1 шрифт в деструктор класса я прописал освобождение поверхностей и шрифта. после этого программа стала вылетать. что меня смущает: 1) переменные глобальные и деструктор как минимум не должен вызываться, ан нет - вызывается как-то и вылетает программа 2) деструктор вызывается, когда переменная уничтожается. значит он должен особождать память. Однако вылет
0
|
Заблокирован
|
|
25.11.2011, 01:06 | 12 |
Сыроежка,что меня смущает:
1) переменные глобальные и деструктор как минимум не должен вызываться, ан нет - вызывается как-то и вылетает программа 2) деструктор вызывается, когда переменная уничтожается. значит он должен особождать память. Однако вылет[/QUOTE] А почему вы решили, что деструкторы для глобальных переменных не вызываются. Они вызываются по завершению работы программы.
0
|
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
|
|
25.11.2011, 01:16 [ТС] | 13 |
Сыроежка, программа вылетает в момент загрузки. Завершать работу она НЕ должна в этот момент.
Почему-то любое освобождение сурфейся(шрифт освобождается нормально Оо) в деструкторе вызывает вылет. При это все равно, локальная переменная или глобальная. Как такое может быть?
0
|
Заблокирован
|
||||||
25.11.2011, 02:03 | 14 | |||||
Очевидно, этот указатель содержит некорректный адрес. Если вы говорите. что он не равен нулю, то надо его отслеживать. Попробуйте везде распечатывть этот адрес и смотреть, не изменился ли он.
Мне интересно, второй параметр в прототипе функции объявлен как const char * или нет?
0
|
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
|
||||||
25.11.2011, 02:22 [ТС] | 15 | |||||
Сыроежка,
0
|
Заблокирован
|
|
25.11.2011, 02:24 | 16 |
Ksan,
Я думал, что если не константный указатель, то может быть там она память портит.
0
|
25.11.2011, 02:24 | |
25.11.2011, 02:24 | |
Помогаю со студенческими работами здесь
16
Ошибка в подключении библиотеки SDL Ошибка при загрузке шрифта Font Awesome SDL ошибка на событии обработки нажатия кнопки мыши Ошибка компилятора gcc при использовании библиотека SDL в C Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |