У меня небольшая проблема с этим.Прежде всего, это для простой графической библиотеки, которую я писал.
То, что я делаю, позволяет мне объявить несколько «виртуальных экранов» с размерами по выбору программиста.Для этого мне нужно динамически выделить достаточно памяти на основе количества пикселей, которое будет содержать экран.
Кажется, что функция, которая выделяет эту память, работает в моей программе только один раз, а затем завершается сбоем (с ошибкой)в другой раз я это называю.Я думаю, что проблема может быть в том, как я обхожу виртуальный экран (screen_t
).Я реализовал это так, что функция new_screen
возвращает не указатель, а сам экран.Я думаю, может быть, это было ошибкой.Кроме того, когда функции, такой как set_current_screen
, требуется экран в качестве одного из аргументов, ей передается адрес, например:
set_current_screen(&screen_variable);
Это правильный путь?Это то, что вызывает segfault, когда я звоню new_screen
?
Заранее спасибо.Код представляет собой заголовочный файл (очень неполный), и AC-файл, который рисует некоторые фрагменты на одном экране, пытается создать другой, получает ошибку сегмента.Вот они:
хгл.ч
main.c