我具有以下结构:[C]的结构的动态分配存储器,与GTK
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");
}
而且它不会返回错误,并与其他功能的伟大工程,它的工作原理我想它所以最后的工作方式,我想释放内存,这里是问题因为在调试模式下编译器母狗:
GTK.exe中0x102d12b4的第一次机会异常:0xC0000005:访问冲突读取位置0xfffffffc。 GTK.exe中0x102d12b4未处理的异常: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;
}
任何帮助非常感激。