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

标签 c++ memory crash

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

例如,采用以下代码片段:(假设 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");崩溃

最佳答案

好的,很抱歉信息不完整,但我无法为您提供完整的代码。

问题来自于缓冲区溢出,早在上面的代码没有崩溃之前。

关于c++ - 访问内存时发生奇怪的崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10704650/

相关文章:

C#如何在不使用大量内存的情况下裁剪图像?

Android Intent Activity 崩溃行为 - 应用程序在应用程序中途重启

javascript - 如何在 Javascript 中实现这个 C++ 模式?

c++,函数指针+函数模板

c++ - 浮点类型表示

android - 后压后堆栈上的 Activity ,内存使用情况

xamarin.ios - 自Xamarin.Forms 2.3.4版通过TestFlight分发后,iOS App崩溃

c++ - 如何编写具有可选 Eigen::Ref 输出参数的函数?

c++ - 来自 VS 2008/2010 的 x86 MUL 指令

android - 无障碍服务不允许释放应用程序内存