Qt QMap数据清除测试(验证QMap内存正确释放方法)

环境

Qt C++ (msvc编译环境)

测试代码

cpp 复制代码
//定义 动子信息 (可放在.cpp文件 中)
struct MoverInfo{
    uint32_t ID;
    double PartPosition;
    uint16_t ModuleID;
    uint32_t PartID;
    uint32_t TrackID;
    uint32_t TrackID2;
};


//使用Windows任务管理器查看内存使用情况

//定义QMap
QMap<int,MoverInfo*> map;//放在h头文件中使用

//将以下代码放在两个不同的button的槽函数下

//核心代码添加
for(int i=0; i<0x100000; i++){
    struct MoverInfo* info = (struct MoverInfo*)malloc(sizeof(struct MoverInfo));
    memset(info ,0, sizeof(struct MoverInfo));
    info->ID = i;
    map[i] = info;
}

//核心代码删除
for(QMap<int,MoverInfo*>::Iterator it = map.begin();it != map.end();it ++)
{
    delete (MoverInfo*)it.value();
}
map.clear();
相关推荐
程与留10 分钟前
06_Qt 常用数据类型与容器:QString、QList、QVector、QMap 的性能与实现分析
数据结构·qt
林森lsjs19 分钟前
队列 FIFO 原理 & 手撕两种队列实现(链表 + 循环数组)—数据结构陆
java·开发语言·数据结构·队列
何以解忧,唯有..32 分钟前
Python time 模块详解:时间处理与日期操作指南
开发语言·python
caimouse40 分钟前
ReactOS 窗口系统分析(20):光标与图标 — cursoricon.c
c语言·开发语言
longxiaozhang62 小时前
C#运算符重载:让对象也能使用“加减乘除”
开发语言·c#
mounter6252 小时前
GCCRS 突破与 Rust 入核:Linux 工具链的重大变革
linux·开发语言·rust·linux kernel·kernel
Buke..2 小时前
【APP 逆向】哔哩哔哩 sign 参数逆向(上):Frida 反调试绕过与 unidbg 调用
java·开发语言·爬虫·python·安卓
abcefg_h3 小时前
MCP 实战指南:如何在项目中使用 Model Context Protocol 及其通信原理
开发语言·后端·golang·mcp
梦痕长情3 小时前
记一次关于AI在数仓中的应用
开发语言·人工智能·python·ai