gpt4 book ai didi

c - [C]结构体动态分配内存,与GTK相关

转载 作者:行者123 更新时间:2023-11-30 18:07:26 24 4
gpt4 key购买 nike

我有以下结构:

    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");
}

它不会返回错误,并且也可以与其他函数一起很好地工作,它按照我希望的方式工作,所以最后我想释放该内存,这是问题,因为在 Debug模式编译器中:

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;
}

非常感谢任何帮助。

最佳答案

在调试过程中数据结构有以下值:第一个有:PoziomaLinijka CXX0017:错误:未找到符号“”后来剩下的全部有:PionowaLinijka CXX0030:错误:无法评估表达式

哦:我是提出问题的人,很抱歉与昵称混淆。

关于c - [C]结构体动态分配内存,与GTK相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4641595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com