CMapStringToPtr添加与释放
2015-11-17 16:57
239 查看
// 创建MapStringToPtr
CMapStringToPtr m_prjFiles;
CStringList m_fileList;
m_fileList.AddTail(_T("C:\\a"));
m_fileList.AddTail(_T("C:\\b"));
m_fileList.AddTail(_T("C:\\c"));
// 遍历CStringList变量,添加到CMapStringToPtr
for(POSITION pos=m_fileList.GetHeadPosition();pos;m_fileList.GetNext(pos)){
ST_LINE_INFO* fi=new ST_LINE_INFO; // 一个自定义的结构,定义了strPath变量
fi->strPath=m_fileList.GetAt(pos);
void* rVal=NULL;
if(m_prjFiles.Lookup(fi->strName,rVal)){
delete fi;
fi = NULL;
}else{
m_prjFiles.SetAt(fi->strName,fi);
}
}
// 释放MapStringToPtr
for(POSITION pos=m_prjFiles.GetStartPosition();pos;){
CString strKey;
ST_LINE_INFO* val = NULL; // 注意这里必须是添加时的变量类型,如果用void*,则会有内存泄露。
m_prjFiles.GetNextAssoc(pos,strKey,(void*&)val); // 这里把定义的变量类型转换为void*&。
if (val)
{
delete val;
val = NULL;
}
}
m_prjFiles.RemoveAll();
CMapStringToPtr m_prjFiles;
CStringList m_fileList;
m_fileList.AddTail(_T("C:\\a"));
m_fileList.AddTail(_T("C:\\b"));
m_fileList.AddTail(_T("C:\\c"));
// 遍历CStringList变量,添加到CMapStringToPtr
for(POSITION pos=m_fileList.GetHeadPosition();pos;m_fileList.GetNext(pos)){
ST_LINE_INFO* fi=new ST_LINE_INFO; // 一个自定义的结构,定义了strPath变量
fi->strPath=m_fileList.GetAt(pos);
void* rVal=NULL;
if(m_prjFiles.Lookup(fi->strName,rVal)){
delete fi;
fi = NULL;
}else{
m_prjFiles.SetAt(fi->strName,fi);
}
}
// 释放MapStringToPtr
for(POSITION pos=m_prjFiles.GetStartPosition();pos;){
CString strKey;
ST_LINE_INFO* val = NULL; // 注意这里必须是添加时的变量类型,如果用void*,则会有内存泄露。
m_prjFiles.GetNextAssoc(pos,strKey,(void*&)val); // 这里把定义的变量类型转换为void*&。
if (val)
{
delete val;
val = NULL;
}
}
m_prjFiles.RemoveAll();
相关文章推荐
- apache-tomcat-8.0.21各级文件功用
- Windows系统下部署安装一个/多个Tomcat8
- centos7 关闭防火墙 获取外网IP
- Linux下MySQL密码强制修改
- CentOS7 初次安装记录(二)配置apache服务器
- scp在Linux机器之间拷贝
- centos7 安装nginx
- Linux的more命令使用
- linux 服务器 添加DNS解析
- Linux文件与目录管理
- Docker(五):镜像
- apache gzip压缩设置
- 全球数据共享网站集合
- linux下 telnet命令使用
- Linux定时器与延时
- fopen()函数文件模板中w,w+,a,a+的区别
- yaffs启动卡死在Freeing init Memory 120K处的解决方法-Linux一直常见错误解决篇
- Linux下暴力破解工具Hydra详解
- 一位开发者的 Linux 容器之旅
- Apache Cordova介绍