草庐IT

c++ - 返回 std::string 的函数在没有 return 语句的情况下崩溃,这与返回 int 且没有 return 语句的函数不同

#include#includeusingnamespacestd;stringcrash(){}intnoCrash(){}intmain(){crash();//crashes//noCrash();//doesn'tcrashreturn0;}函数crash()在Mingwg++4.6.2中崩溃,函数noCrash()执行时没有问题。为什么没有return语句返回字符串的函数会崩溃? 最佳答案 两者都是未定义的行为,即使是noCrash也会崩溃。 关于c++-返回std::stri

c++ - memset 导致 std::string 赋值崩溃

我有适用于Windows的代码,但现在我正在移植到MAC,使用Xcode3.2.5C/C++编译器版本GCC4.2,它崩溃了。我已将其缩小为memset调用。如果我注释掉memset它会起作用,如果我把它放回代码中就会崩溃。我的头文件中有一个看起来像这样的结构:typedefstruct{intdeviceCount;struct{#defineMAX_DEVICE_ID256#defineMAX_DEVICE_ENTRIES10std::stringdeviceId;//DevicenametoOpenTransportTypeeTransportType;}deviceNodes[

c++ - 在 Windows 7 上崩溃但在 XP 上运行

我使用C++、Qt和VisualStudio2010编写了一个小应用程序。它在WindowsXP(32位)上运行,但在Windows7(64位)上启动后立即崩溃。我看到“程序已停止工作...”错误。我是否必须为Windows7重新编译应用程序?是否有可能获得崩溃原因的更多信息?谢谢 最佳答案 通常您不必为Windows7重新编译,但这取决于您没有提供详细信息的应用程序。找出问题的最简单方法是在Windows7中对其进行调试或加入更多错误处理,以便它让您知道哪里出了问题,或者哪里出了问题

C++ DX11 应用程序仅在 Visual Studio IDE 中运行

好吧,我在MSDN论坛上提出了这个问题,但尚未收到任何类型的回复,所以我想我应该试试StackOverflow。我目前正在Win7上使用VS2008开发DirectX应用程序。我最近遇到了一个内存分配类的严重内存损坏错误,该错误会占用字节对齐的内存。在此错误期间,我仍然可以运行调试并发布可执行文件,但是它会由于指令损坏或其他原因而崩溃,但它仍会执行一段时间直到崩溃。然后我剥离了整个内存分配类。该应用程序在IDE(发布和调试版本)中运行完美,但我根本无法运行任何可执行文件。他们立即因无响应/停止工作错误而崩溃。而且我不认为这是我的环境,因为我在另一台之前没有问题的计算机上遇到了同样的问题

c++ - Windows Phone 8 应用仅在从商店下载后崩溃

我们的应用程序已通过审查,我们自己的内部测试没有发现重大问题,但是从商店下载时,总是在特定位置崩溃。目前我们很难获得任何崩溃日志,所以此时我只想知道是否有其他人遇到过类似的问题以及发生了什么?该应用是原生C++DirectX项目,使用FMOD库处理音频,并使用SQLiteforWindowsPhone8。 最佳答案 首先尝试在不同的设备和不同的文化/语言设置上从商店测试您的应用程序。由于不同的分隔符、日期时间格式等原因,从文件解析失败时,这是一个常见的错误。另一个常见原因-list中缺少功能。第三个原因,这给很多应用程序带来了问题—

c++ - Q3ListView 是否无法从 Qt 后备存储中注销或代码错误?

我有以下用例(实际上没有意义,因为它是从现实生活中的工作示例中最小化的,但我认为它在技术上仍然是正确的):classDialog:publicQDialog{public:Dialog(QWidget*parent):QDialog(parent){newQ3ListView(this);//thiswillcrash//newQWidget(this);//thiswon'tcrash}};根据添加到Dialog的内容,程序是否会在删除Dialog实例时崩溃(如代码片段中的注释所示),但仅当主窗口的标志已被修改。下面是MainWindow类的代码,它使用了Dialog:classMa

c++ - 反序列化中的文件损坏,如何防止崩溃?

我正在使用boost图形库来处理图形。我使用boost::serialization将我的图形写入文件。出于测试目的,我修改了文件的完整性。现在我的程序总是崩溃。我想知道有什么方法可以防止崩溃(boost::serialization不会抛出异常)。更一般地说,对于任何类型的文件,在解析时都不会抛出异常,所有的文件都应该是正确的,是否也有办法?也许唯一的解决方案是编写带有异常处理的自定义序列化/反序列化函数?谢谢!编辑:当所有数据损坏或文件丢失时,会出现boost::archive::archive_exception。但是如果只更改文件的某些部分,它会崩溃......Edit2:我应

C++动态整数数组有时会导致崩溃

我写了一个简单的代码如下:voidshow(constinta[],unsignedelements);intmain(){show(newint[]{1,2,3,45},4);//doesnotwork}voidshow(constinta[],unsignedelements){cout它应该只输出{1,2,3,45}。如果我在括号中包含一个尺寸show(newint[4]{1,2,3,45},4);然后就可以了。所以很自然地我会假设如果我以这种方式编写new我必须指定大小(尽管我认为给它一个初始化列表会暗示大小)。但是,奇怪的是,当在show函数调用处设置断点并通过调试器逐步运行

c++ - AVX:数据对齐:store crash,storeu,load,loadu 没有

我正在修改RNNLM一个神经网络来研究语言模型。但是考虑到我的语料库的大小,它运行得非常慢。我试图优化矩阵*vector例程(这是一个占小数据集总时间63%的例程(我预计它在大数据集上会更糟))。现在我坚持使用内在函数。for(b=0;b此示例崩溃于:_mm256_store_ps(&(dest.ac[b*8+from+0]),t4);但是如果我改成_mm256_storeu_ps(&(dest.ac[b*8+from+0]),t4);(我想你是未对齐的)一切都按预期进行。我的问题是:为什么load可以工作(而如果数据未对齐,它不应该工作)而store却不能。(此外,两者都在同一个地址

c++ - 替换或修改外部应用程序中的 API 调用(GetOpenFileName、GetSaveFileName)

我有一个调用GetOpenFileNameA和GetSaveFileNameA的旧应用程序。两次调用都是错误的。应用程序崩溃!我已经使用OllyDbg和APIMonitor来读取存储在OPENFILENAME结构中的大小。该结构的大小为76字节(使用Windows7x64进行测试)。调用GetOpenFileNameA或GetSaveFileNameA时出现访问冲突异常。我假设在运行时窗口试图读取88字节而不是76字节。看看这个:http://dotnetbutchering.blogspot.de/2007/10/vc-60-getting-0xc0000005-access.htm