这样为什么会报错误
CStringList var(15);
POSITION position;
position=var.InsertAfter(NULL,"item1");
position=var.InsertAfter(position,"item3");
position=var.InsertBefore(position,"item2");
for(position=var.GetHeadPosition();NULL!=position;var.GetNext(position))
{
CString str;
str=var.GetAt(position);
if("item3"==str)
{
var.RemoveAt(position);
}
}而这么写却不会有问题呢?CStringList var(15);
POSITION position;
position=var.InsertAfter(NULL,"item1");
position=var.InsertAfter(position,"item3");
position=var.InsertBefore(position,"item2");
for(position=var.GetTailPosition ();NULL!=position;var.GetPrev(position))
{
CString str;
str=var.GetAt(position);
if("item3"==str)
{
var.RemoveAt(position);
}
}
CStringList var(15);
POSITION position;
position=var.InsertAfter(NULL,"item1");
position=var.InsertAfter(position,"item3");
position=var.InsertBefore(position,"item2");
for(position=var.GetHeadPosition();NULL!=position;var.GetNext(position))
{
CString str;
str=var.GetAt(position);
if("item3"==str)
{
var.RemoveAt(position);
}
}而这么写却不会有问题呢?CStringList var(15);
POSITION position;
position=var.InsertAfter(NULL,"item1");
position=var.InsertAfter(position,"item3");
position=var.InsertBefore(position,"item2");
for(position=var.GetTailPosition ();NULL!=position;var.GetPrev(position))
{
CString str;
str=var.GetAt(position);
if("item3"==str)
{
var.RemoveAt(position);
}
}
解决方案 »
- 'listbox' : undeclared identifier syntax error : identifier 'CListBox'
- autoit 如何更换生成的*.exe的图标。
- delphi区无人,只好拿VC区来找高手了,流的操作
- IHTMLInputTextElement->put_value设置textarea类型的值错误??????
- IO完成模型中如何判断对方断线或非正常关闭?
- 用什么样的桌面数据库比较好?
- 如何细化二值化后的图象
- CHtmlView的问题
- 100分,有谁知道如何让列表视图中的Item在不同的条件下显示不同的图标?
- 数据集指针定义问题sdk
- 问个简单的:如何取得一个flash的播放时间长度?
- 关于CBRS_SIZE_DYNAMIC的问题
if("item3"==str)
{
var.RemoveAt(position);
break;
}break为跳出循环
POSITION position;
position=var.InsertAfter(NULL,"item1");
position=var.InsertAfter(position,"item3");
position=var.InsertBefore(position,"item2");
for(position=var.GetTailPosition ();NULL!=position;var.GetPrev(position))
{
CString str;
str=var.GetAt(position);
if("item3"==str)
{
var.RemoveAt(position);
}
}
此时执行第3此后position=var.GetTailPosition ();==》position=NULL
不满住NULL!=position条件,所以跳出for循环
而是在for(position=var.GetHeadPosition();NULL!=position;var.GetNext(position))
造成指针越界