Hadn't
我的微博Hadn_t
随笔 - 40, 文章 - 0, 评论 - 19, 引用 - 0
数据加载中……
删不光的指针数组
@import url(http://www.cppblog.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 犯了一个这样的错误,代码如下:
void
CUpLoadQueueDataModel::DoClearAway()
{
for
(TInt index
=
0
; index
<
iDataItemArray.Count(); index
++
)
{
if
(iDataItemArray[index])
{
delete iDataItemArray[index];
iDataItemArray[index]
=
NULL;
}
iDataItemArray.Remove(index);
}
SaveCacheDataL();
}
粗看没什么问题,仔细想想不对,循环中Remove了数组成员,iDataItemArray.Count()这个值一直在减少并且Array的结构在改变,假如有0 1 2 3 4 5六个元素,按照上面的代码执行则实际只会删除 0 2 5 三个元素就结束循环了- -|
修改后代码如下:
void
CUpLoadQueueDataModel::DoClearAway()
{
TInt index
=
iDataItemArray.Count()
-
1
;
while
( index
>=
0
&&
iDataItemArray[index] )
{
delete iDataItemArray[index];
iDataItemArray[index]
=
NULL;
iDataItemArray.Remove(index);
index
--
;
}
SaveCacheDataL();
}
每次删最后面的。。。测试正常运行,再考虑考虑 感觉如下写法更好:
void
CUpLoadQueueDataModel::DoClearAway()
{
while
( iDataItemArray.Count() )
{
delete iDataItemArray[
0
];
iDataItemArray[
0
]
=
NULL;
iDataItemArray.Remove(0);
}
SaveCacheDataL();
}
现在想想,直接iDataItemArray.ResetAndDestroy()
posted on 2011-12-06 15:54
hadn't
阅读(238)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © hadn't
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2011年12月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔档案
(40)
2013年1月 (1)
2012年10月 (1)
2012年8月 (1)
2012年7月 (1)
2012年2月 (2)
2011年12月 (4)
2011年11月 (3)
2011年10月 (1)
2011年9月 (1)
2010年5月 (1)
2010年4月 (7)
2010年3月 (1)
2009年9月 (1)
2009年8月 (2)
2009年7月 (2)
2008年10月 (3)
2008年7月 (8)
wic'blog
wic'blog
(rss)
http://www.cppblog.com/wicbnu
友情链接
中文爱百科
可信赖的中文百科全书。
最新随笔
1. 让Android模拟器顺畅起来
2. 静下心来做好自己的事
3. 工作之外
4. [转]S60模拟器打开即消失问题的解决
5. HookLogger用不了?
6. 很容易出现的内存泄露情景
7. 删不光的指针数组
8. Json
9. 上班之后经常用的几个小工具
10. 犯了一个低级错误
搜索
积分与排名
积分 - 37418
排名 - 554
最新随笔
1. 让Android模拟器顺畅起来
2. 静下心来做好自己的事
3. 工作之外
4. [转]S60模拟器打开即消失问题的解决
5. HookLogger用不了?
6. 很容易出现的内存泄露情景
7. 删不光的指针数组
8. Json
9. 上班之后经常用的几个小工具
10. 犯了一个低级错误
最新评论
1. re: 最大流最小割定理证明
@LZSB
终于看懂了 还好哥机智 还是谢谢了
--LZSB
2. re: 最大流最小割定理证明
好不容易看到一个清晰的说明 DF是什么意思 操你妈 写中文会死? 不洋气会死? 逗比
--LZSB
3. re: Ubuntu 显示桌面快捷键
评论内容较长,点击标题查看
--kangear
4. re: Ubuntu 显示桌面快捷键
有用,试试看。改了方便。
--kangear
5. re: [转]S60模拟器打开即消失问题的解决
第一次听到这个说法的时候巨汗
--aochuih
阅读排行榜
1. Ubuntu 显示桌面快捷键(12171)
2. QT Creator 代码自动补全(5657)
3. 让Android模拟器顺畅起来(4099)
4. 最大流最小割定理证明(2799)
5. PKU 1001 Exponentiation(1637)
评论排行榜
1. PKU 1001 Exponentiation(4)
2. Ubuntu 显示桌面快捷键(3)
3. 开始试做USACO的题目(2)
4. Java实验之简易通讯录(2)
5. 最大流最小割定理证明(2)