使用std :: string时出现bad_alloc错误

问题描述 投票:3回答:7

我目前正在从事一个项目,该项目取决于我提供文件的路径(例如C:\Path.pth)。现在,我昨天通过调用std::string进行了所有工作:

std::string path(`"C:\\Path.pth`");

但是现在不起作用。抛出bad_alloc。好像是'\'字符是问题所在。我什至尝试使用\x5C作为其ascii值,但结果相同。

现在,我的问题是,是否有可能我搞砸了某些#define,某些编译器选项或其他可能导致这种情况的“非代码”?我正在使用VS 2005。

任何帮助将不胜感激


PierreBdR

..听起来很可能。或至少,它必须:P

由于没有人提到过某种/ SetStringCharSize:2bit-compiler选项,所以我可以肯定地认为我的代码必须在某个地方弄乱了某些东西,而不仅仅是一个愚蠢的编译器选项(或类似的选项),错误..

我目前正在一个项目上,该项目取决于我提供文件的路径(例如C:\ Path.pth)。现在,我昨天通过调用std :: string和:std :: string path(`“ C:\\ Path ....

c++ exception stl stdstring
7个回答
6
投票

正如您的错误所建议,问题是由于内存分配


3
投票

已发现并修复该错误。


1
投票

不要忘记,即使在Windows上,也应该在路径中使用正斜杠:


0
投票

将字符串定义为:“ C:\\ Path.pth”


0
投票

[不,您昨天也没有在“工作”。 '\'需要像这样转义:


0
投票

这可能仅仅是由于需要一个干净的版本;我经历过这种情况肯定是这样。


-1
投票

假设您的双反斜杠正确,我猜您正在Vista上运行?

© www.soinside.com 2019 - 2024. All rights reserved.