如果我没有做错任何事,我会感到困惑,但是遵循以下代码:
#include <stdio.h>
int main()
{
fputws(L"this fails.\n", stderr);
return 0;
}
因我遇到以下异常而崩溃:
Unhandled exception at 0x56BEDABC (msvcr110.dll) in errors.exe: 0xC0000005: Access violation reading location 0x000000A4.
我正在使用MSVC2012。
我试过
我有以下版本:
Microsoft Visual Studio Professional 2012
Version 11.0.50727.1 RTMREL
Microsoft .NET Framework
Version 4.5.50709
答案 0 :(得分:4)
我终于设法谷歌这个问题了,但之前没有提到它,所以链接如下:
http://connect.microsoft.com/VisualStudio/feedback/details/772585/fputws-yields-access-violation
VS2012update1 fixes the problem. msvcr110d.dll version is 11.00.51106.1.
另一种解决方法是在使用fputs("", stderr);
之前使用fwputs
来正确初始化IO流。