我有以下结构:
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;
}
任何帮助都非常感激。
答案 0 :(得分:0)
良好的调试数据结构具有以下值: 第一个有:PoziomaLinijka CXX0017:错误:未找到符号“” 后来其余的都有:PionowaLinijka CXX0030:错误:表达式无法评估
哦:我是开始提问的人,很抱歉昵称混淆。
答案 1 :(得分:0)