Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
关于rtgui_list_view控件
发布于 2010-03-05 11:19:04 浏览:3691
订阅该版
正在学习rtgui,有一处不太明白: rtgui_list_view的定义: ```struct rtgui_list_view { struct rtgui_view parent; /* widget private data */ /* list item */ const struct rtgui_list_item* items; /* total number of items */ rt_uint16_t items_count; /* the number of item in a page */ rt_uint16_t page_items; /* current item */ rt_uint16_t current_item; }``` 其中items指向的内存如果是动态创建的,好像没找到在哪里free。是否应该在rtgui_list_view_clear() 或rtgui_list_view_destroy()中free?请指点。
查看更多
4
个回答
默认排序
按发布时间排序
bernard
2010-03-05
这家伙很懒,什么也没写!
这块内存当时设计时就是作为静态内存来处理的,所以list_view控件不涉及到释放的操作。 如果是动态类型的,可以是:这个list view声明为模态型的视图,然后显示完成后删除掉这个view,并把内存释放掉。 items = rt_malloc(xxx) view = rtgui_list_view_create(items) if (rtgui_view_show(RTGUI_VIEW(view), is_modal = RT_TURE) == OK) { ... } rtgui_list_view_destroy(view); rt_free(items); /* 仅伪代码 */
softwind
2010-03-05
这家伙很懒,什么也没写!
嗯,非常感谢。我是看了Radio的代码, ``` /* select a station from list */ struct station_item* station_list_select(struct station_list* list, struct rtgui_workbench* workbench) { rt_size_t index; rtgui_rect_t rect; rtgui_list_view_t *view; struct rtgui_list_item* items; struct station_item* station; char exit_str[] = "返回.."; RT_ASSERT(list != RT_NULL); RT_ASSERT(workbench != RT_NULL); station = RT_NULL; items = (struct rtgui_list_item*) rt_malloc (sizeof(struct rtgui_list_item) * (list->count + 1)); if (items == RT_NULL) return RT_NULL; /* no memory */ /* create view */ rtgui_widget_get_rect(RTGUI_WIDGET(workbench), &rect); view = rtgui_list_view_create(items, list->count + 1, &rect); items[0].image = RT_NULL; items[0].action = station_list_selected; items[0].name = exit_str; items[0].parameter = view; for (index = 1; index < list->count + 1; index ++) { items[index].image = RT_NULL; items[index].action = station_list_selected; items[index].name = list->items[index - 1].title; items[index].parameter = view; } /* add view to workbench */ rtgui_workbench_add_view(workbench, RTGUI_VIEW(view)); /* show view as modal */ if (rtgui_view_show(RTGUI_VIEW(view), RT_TRUE) == RTGUI_MODAL_OK) { station = &list->items[view->current_item - 1]; } /* destroy view */ rtgui_list_view_destroy(view); return station; } ``` 发现items没有释放,所以有此一问。这么说Radio的代码应该加一句rt_free(items)?
bernard
2010-03-05
这家伙很懒,什么也没写!
是的,确实应该加。radio的又一个bug。
撰写答案
登录
注册新账号
关注者
0
被浏览
3.7k
关于作者
softwind
这家伙很懒,什么也没写!
提问
41
回答
153
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
2
RT-Thread EtherKit开源以太网硬件正式发布
3
如何在master上的BSP中添加配置yml文件
4
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
5
RT-Thread 发布 EtherKit开源以太网硬件!
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
15
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部