sunsonzh 2016-07-05 01:36 采纳率: 0%
浏览 720

mfc,下面这个函数有什么问题吗?

为什么经常在dest.add(strtmp)时,程序异常退出,无任何提示?

void Split(CString source, CString division, CStringArray& dest)
{
dest.RemoveAll();
int pos =0;
int pre_pos =0;
int dlen=division.GetLength();
CString strtmp;
while( -1!= pos ){
pre_pos = pos;
pos = source.Find(division,pos);
if(pos>=0 ){
strtmp=source.Mid(pre_pos,(pos-pre_pos));
//strtmp.ReleaseBuffer();
if(strtmp.GetLength()>0){
//MessageBox(NULL,strtmp,"字符串add前",0);

dest.Add(strtmp);

            //MessageBox(NULL,strtmp,"字符串add后",0);
        }

        pos+=dlen;
    }
    else{
        pos=source.GetLength();
        if(pos>pre_pos){
            strtmp=source.Mid(pre_pos,(pos-pre_pos));
            //MessageBox(NULL,strtmp,"最后字符串",0);
            if(strtmp.GetLength()>0)
                dest.Add(strtmp);
        }
        pos=-1;
    }
 }

}

  • 写回答

1条回答 默认 最新

  • oyljerry 2016-07-05 01:52
    关注

    一般都是数组下标等越界,或者不合法等造成的,你的字符串截取等地方要多检查一下

    评论

报告相同问题?

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘