Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
admsasha
17 / 17 / 4
Регистрация: 11.06.2011
Сообщений: 230
#1

утечка память в IMG_LoadPNG_RW (SDL) - C++

01.11.2011, 12:22. Просмотров 421. Ответов 3
Метки нет (Все метки)

сделал в цикле следующий код
Код
while(1){
       frame=IMG_LoadPNG_RW(rwop);
       rwop=SDL_RWFromFile(filename.c_str(), "rb");

       SDL_FreeSurface(frame);
       SDL_FreeRW(rwop);

       SDL_Delay(30);
}
Смотрю в top и вижу, как программа кушает память на глазах. Что я не правильно делаю? Где неправильно очистил память ? Путем экспериментов выяснил, что течет тут SDL_RWFromFile, и совсем чуть если оставить только IMG_LoadPNG_RW
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2011, 12:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос утечка память в IMG_LoadPNG_RW (SDL) (C++):

Утечка памяти в SDL - C++
Здравствуйте! Для проверки завершения работы я использую условие на нулевую ссылку int Game::exec() { while (m_pWindow...

Как вывести текст на экран, используя библиотеку SDL TTF для SDL 2? - C++
В официальной доке как-то скомкано написано. При инициализации SDL TTF и при загрузке шрифта ошибок нет. Но текст на экране не...

C++ SDL - C++
Всем привет! Работал я значи в SDL, а потом что-то нажалось ил не нажалось и вообщем теперь, при компиляции любого(работающего,...

Оптимизация SDL - C++
Начал изучать SDL. Все бы хорошо, но процесс созданного окна кушает 25% ресурсов процессора. Когда делал по этим урокам:...

Установка SDL 2 - C++
Из-за некоторых проблем с обработкой клавиатуры решил перейти с GLUT на SDL 2. Вопрос: как на Ubuntu установить этот самый SDL 2? ...

SDL Графика. - C++
Добрый день! Не могу соединить два проекта, в одном изображение переводится в ч\б, во втором тонируется изображение. Мне нужно получить...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
01.11.2011, 13:15 #2
вероятнее всего выход из while не происходит должным образом и в нужном месте, вследствие чего цикл увековечивает себя в оперативке, наклепывая все новые и новые объекты и присваивая их адреса одним и тем же указателям....
0
admsasha
17 / 17 / 4
Регистрация: 11.06.2011
Сообщений: 230
01.11.2011, 13:28  [ТС] #3
Цитата Сообщение от BRcr Посмотреть сообщение
вероятнее всего выход из while не происходит должным образом и в нужном месте, вследствие чего цикл увековечивает себя в оперативке, наклепывая все новые и новые объекты и присваивая их адреса одним и тем же указателям....
незнаю что такое "должным образом", я делал выход из цикла по времени. Добавлял счетчик. Эффекту это не дало. Точнее, оно так изначально и было, пока я не упростил до такого кода.
0
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
01.11.2011, 14:19 #4
Тогда приведи весь связанный с этим кусочком код. Так как-то не шибко понятно...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2011, 14:19
Привет! Вот еще темы с ответами:

SDL mouse - C++
если обработка нажатия на левую кнопку мыши это if (occur.type == SDL_MOUSEBUTTONDOWN) if(occur.button.button == SDL_BUTTON_LEFT)...

Странность С++ и SDL - C++
Здравствуйте уважаемые форумчане возникла непонятная ситуация вообщем писал на С++ классы и учил OpenGL и все вроде нормально как вдруг...

инициализация SDL - C++
подключил #include "SDL.h" - проверил, запустилось. добавил первую строку из статьи про работу сдл SDL_Init(SDL_INIT_VIDEO); ...

Документация по SDL - C++
Люди , кто знает пожалуйста киньте ссылки на документацию по SDL =) Заранее спс!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.11.2011, 14:19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru