Вылет при проектировании визуального приложения (Windows7 x32, C, GTK+) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Разбираюсь с библиотекой gtk+ (версия 2.24.10). Пишу в CodeBlocks(12.11), в windows7 x32 Встретил следующую проблему. Нужно было рисовать последовательные числа. Использую gdk_draw_layout(). Для панго layouta каждую в каждую итерацию цикла менялся текст, получался он таким образом:
......
PangoLayout* a;
a= gtk_widget_create_pango_layout(...,"0");
......
 
char* temp;
for (i=-10, i< 50, i++)
{
......
itoa (i,temp,10);
pango_layout_set_text(a,temp,5);
gdk_draw_layout(.....,a)
......
}
Программа делает то, что нужно - рисуются эти числа, но потом программа вылетает(прекращена работа программы) Вот подробности: Сигнатура проблемы: Имя события проблемы: APPCRASH Имя приложения: Grapher.exe Версия приложения: 0.0.0.0 Отметка времени приложения: 51eabefc Имя модуля с ошибкой: libgobject-2.0-0.dll Версия модуля с ошибкой: 2.28.8.0 Отметка времени модуля с ошибкой: 4e2537c6 Код исключения: c0000005 Смещение исключения: 00025507 Версия ОС: 6.1.7601.2.1.0.256.1 Код языка: 1049 Дополнительные сведения 1: 0a9e Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789 Дополнительные сведения 3: 0a9e Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789 Ознакомьтесь с заявлением о конфиденциальности в Интернете: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0419 Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом: C:\Windows\system32\ru-RU\erofflps.txt Дебаг выявил, что проблема в том, что появляется сигнал SIGSEGV на строке gtk_main() в функции main() Характерно то, что если вместо строки itoa (i,temp,10); кода вставить просто присвоение temp строковой константы - ничего не вылетает, все работает При использовании Sprintf() все так же как с itoa(). Неужели дело в том, что Windows плохо "общается" с GTK+? Может можно как то исправить? Если нет, подскажите годные способы как еще преобразовать символьный массив в число(

Решение задачи: «Вылет при проектировании визуального приложения (Windows7 x32, C, GTK+)»

textual
Листинг программы
char temp[256]; // ну или поменьше, но чтобы гарантированно поместилось число + 1 символ

Объяснение кода листинга программы

  1. Объявляется массив temp типа char с размером 256 байт.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы