cin命令导致内存位置出现Microsoft C++异常:std::bad_alloc

Microsoft C++ exception: std::bad_alloc at memory location cause by cin command

本文关键字:异常 C++ std bad alloc Microsoft 命令 内存 位置 cin      更新时间:2023-10-16

我面临的问题有点令人困惑,因为我在内存位置遇到Microsoft C++异常:std::bad_alloc通过Win32配置(在Win7-SP1 64位/VS200/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恢复后),它真的运行得很好吗?还是只是与一些东西混合在一起,使其暂时工作?

Thnaks

可能与_tmain 导致的UTF16的使用有关

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