1

我遇到的问题有点令人困惑,因为我遇到了Microsoft C++ 异常:std::bad_alloc at memory location...在运行时通过 Win32 配置构建(在 Win7-SP1 64bit / VS2010 / 4G RAM 上)

我的应用程序使用库并要求用户输入,但是当代码到达 cin 语句时,我的代码中的cin命令会引发上述运行时异常。因此,为了确保我发现了什么,创建了一个测试项目,仅遵循代码并验证cin命令引发相同的异常:

int _tmain(int argc, _TCHAR* argv[])
{
 cout<<"Please enter ?\n";
 string input = "test";

 cin >> input; //This code causing runtime exception

 return 0;
}

我谷歌它,然后修改代码以使用 x64 构建,这有助于我避免这个异常,所以我将我的原始代码修改为 64 位并成功地能够在 cin 命令上运行。

但是,当我将配置改回 win32 并构建时,示例应用程序和原始应用程序中都不再发生上述异常。

所以我想知道:如果有人有同样的脸,我正在经历什么?

  • 第一次使用 win32 构建时有什么问题?

  • 而且,如果代码当前在 win32 上成功运行(从 x64 恢复后),它真的做得很好还是只是混合了一些东西让它暂时工作?

纳克斯

4

1 回答 1

0

可能与_tmain导致使用 UTF16 有关

您是否尝试过使用std::wstring或普通(非 Microsoft)主程序?

于 2013-07-17T17:34:32.530 回答