当前位置:  技术问答>linux和unix

求C的GTK+窗口中内存释放方法

    来源: 互联网  发布时间:2016-04-20

    本文导语:  大家好!有个棘手的问题,如何释放我在一个创建GTK+窗口中声明的结构体变量的指针?在什么地方释放?想请大家指点迷津。 代码如下,无关部分已略去。 void create_winNewplan ( HildonProgram* hilpro ) { ………………//...

大家好!有个棘手的问题,如何释放我在一个创建GTK+窗口中声明的结构体变量的指针?在什么地方释放?想请大家指点迷津。
代码如下,无关部分已略去。


void
create_winNewplan ( HildonProgram* hilpro )
{
………………//声明了一些窗体组件

   DateTrans *dtInure = (DateTrans *)malloc(sizeof(DateTrans)); //分配给结构体DateTrans内存

………………//定义窗口部件的参数

dtInure->program = hilpro; //给结构体成员赋值

………………//回调函数
g_signal_connect (G_OBJECT (btTitlemodel), "clicked",
                     G_CALLBACK (dialog_calendar),
                     dtInure);//使用了该结构体做实参




感谢大家!   阿弥陀佛

|

具体情况具体分析,可以做一个类似垃圾收集器
全局的
一般可以在gtk_main_quit可以做处理
局部的
一般在程序函数调用后就可以free掉

关于gtk_window_new()
这些new出来的交给gtk自己处理。

|
晕,C语言没学好吧,肯定不会了,malloc你不free的话是不会释放掉的,
你注册下窗口的destroy事件,在里面free掉。

看你的代码,是个临时分配的,你在click的处理函数中使用完这个变量后free掉就可以了

|
先释放结构体里面的指针,
再释放 结构体指针,
跟 c++一样,
先构造的后释放.
gtk的窗口,
gtk destrory.

|

void
create_winNewplan ( HildonProgram* hilpro )
{
 .......
 .......


 free(dtInure);
}

这样应该就可以。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何将GTK中的CallBack函数封装成类似JAVA接口类的使用方法
  • 用什么工具(方法,编译器)将gtk+移植到window下????????
  • 关于gtk的目录问题,我的目录是 gtk-2.0/gtk/gtk.h ??
  • Redhat linux9.0 下Gtk+编程的#include <gtk/gtk.h>问题
  • 【重要】gtk+ 编译gtk+的问题,不同于一般gtk的搭建--1000分,问题解决了,开号给分,决不食言!大家都来看看
  • gtk 和 gtk+ 有什么区别?
  • centos5.4中安装gtk时,yum库最新版是gtk2.10,如何更新yum库安装gtk2.12
  • 我使用GTK+2.0写界面程序时,怎么找不到gtk.h文件?
  • GTK+ gtk_tree问题
  • gtk for win 和 gtk for linux 下的程序问题?
  • GTK窗口前端显示及GTK窗口闪烁
  • 用GTK开发的程序如何在没有GTK动态连接库的Linux里运行?
  • 【GTK】GTK中有没有这个widget?
  • 我想学习GTK+2.0,请问如何准备GTK编程环境???
  • [GTK] gtk最小化问题与恢复问题
  • 【gtk+】初学gtk+,请教一个问题
  • 【gtk】关于gtk布局问题
  • 本人刚学gtk编程,留下油箱,欢迎喜欢gtk编程的朋友和我交流啊!!!!
  • 大家好,想知道gtk与gtk+有什么区别?
  • 关于GTK中gtk_widget_hide()的问题
  • gtk编程问题,如何在一个线程中向gtk控件发送一个expose_event消息
  • gtk中如何获取gtk_text_view中的输入内容?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3