У меня следующая структура:
typedef struct
{
GtkWidget* PoziomaLinijka;
GtkWidget* PionowaLinijka;
GtkWidget* Label1;
GtkWidget* Label2;
gint x,y;
} StrukturaDrawing;
И мне нужно выделить ее в куче, потому что позже у меня есть функции, которые используют эту структуру, и я не хочу использовать глобальные переменные.Поэтому я выделяю его так:
StrukturaDrawing* Wsk;
Wsk = (StrukturaDrawing*)malloc(sizeof(StrukturaDrawing));
if (!Wsk)
{
printf("Error\n");
}
И он не возвращает ошибку, а также прекрасно работает с другими функциями, он работает так, как я хотел, чтобы он работал, и, наконец, я хотел освободить эту память, и вотпроблема, потому что в режиме отладки суки компилятора:
Исключение первого шанса в 0x102d12b4 в GTK.exe: 0xC0000005: расположение чтения нарушения доступа 0xfffffffc.Необработанное исключение в 0x102d12b4 в GTK.exe: 0xC0000005: Место чтения нарушения доступа 0xfffffffc.
Я подключаю функцию обратного вызова к своей функции, например:
g_signal_connect (G_OBJECT (Okno), "destroy ", G_CALLBACK (Wyjscie), Wsk);
Функция, которая предполагает освобождение памяти и закрытие программы:
void Wyjscie(GtkWindow* window, GdkEvent* event, StrukturaDrawing* data)
{
gtk_main_quit();
free(data);
data = NULL;
}
Любая помощь действительно приветствуется.