-1

两周前我得到了这个运行良好的程序,我没有改变它现在崩溃的任何部分。

例如,拿这个片段:(假设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");碰撞

4

1 回答 1

0

对,抱歉信息不完整,但我无法给你完整的代码。

问题来自远在上述代码没有崩溃之前的缓冲区溢出。

于 2012-05-28T08:11:02.760 回答