访问内存时发生奇怪的崩溃

时间:2012-05-22 15:00:13

标签: c++ memory crash

我的这个程序在2周前运行良好,我没有更改现在崩溃的任何部分。

例如,请使用以下代码段:(假设is是有效istream且包含<tag>

std::string Str;
char c;
for ( ; is >> c; )
{
    std::cout << c << std::flush;
    Str += c;
}

输出: < 然后崩溃。

我正在使用Windows和mingGW,崩溃是一个窗口,说我的程序有一个错误,Windows试图修复它...

但这不是全部,它与Str = c;或启动时崩溃相同:std::string Str ("op");

我发现这个错误后30分钟,我在另一条线上得到了另一个(在最初的一个之前):

osstr.write((char *) Word, 16);

其中osstr是有效的ostringstream,Word是填充的unsigned char *

编辑:

问题可能不在代码中。因为对字符串构造函数的简单调用会崩溃。

std::string Str ("")有效

std::string Str ("str");崩溃

1 个答案:

答案 0 :(得分:0)

是的,抱歉信息不完整,但我无法提供完整的代码。

问题来自缓冲区溢出,远远超出上面的代码,并没有崩溃。