push_back 异常中断

kinglw001 2011-12-06 03:56:05
CString str;
vector<CString> vt;

UINT uCount=0;

while( (uCount = m_f.Read(tc, sizeof(TCHAR)*TCCOUNT)) )
{
……
str=_T("张");
vt.push_back(str);
……
}

我有一段简单的不能再简单的,用vector保存从文件里读出来的数据的代码了,一开始以为是读文件出了什么问题,后来把代码
改成这个样子,就是str直接赋值,直接用vector push_back 这个string,一运行到这里就异常中断。而把str=_T("");就没有这个问题,以前一个同事也遇到过类似的问题,他说最后解决,好像是vector包含的那个类的构造函数出了问题。而那个类是他自己写的,但我用的这两个类都是库里的,不应该会出什么问题呀,奇怪死的问题
...全文
206 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kinglw001 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 visualeleven 的回复:]

也可能是其它地方比如说数组溢出了,导致堆栈被破坏了
[/Quote]
终于找到问题的原因了,确实是其它地方,
因为读出文件返回值是2000,应该除以sizeof(TCHAR)的,就是1000,我给最后一个值赋成了空,没想到这影响到了vector
kinglw001 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 oyljerry 的回复:]

单步调试一下,是否有其他问题
[/Quote]
是单步啊,总共也没超过4步,到这里就异常中断了
wangweixu520 2011-12-06
  • 打赏
  • 举报
回复
只要你的str是CString,那么我表示...没看出问题
Eleven 2011-12-06
  • 打赏
  • 举报
回复
也可能是其它地方比如说数组溢出了,导致堆栈被破坏了
oyljerry 2011-12-06
  • 打赏
  • 举报
回复
单步调试一下,是否有其他问题
yuucyf 2011-12-06
  • 打赏
  • 举报
回复
你使用上没有看出问题,看下你的代码,可能是由于其他地方的错误造成的.
你把改成str=_T("")没有问题,你改成str=_T("ABCD")看看有没有问题?
kinglw001 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 visualeleven 的回复:]

VC6 ??
[/Quote]2008
Eleven 2011-12-06
  • 打赏
  • 举报
回复
VC6 ??

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧