在 Visual Studio 2022 中调试时,C++ 语言的子函数内“读取字符串字符时出错”,这是为什么?

以下是 C++ 语言代码:
#include <iostream>
#include <string>
using namespace std;
string fun(const string& str)
{
string new_str;
new_str = str;
new_str[0] = 'H';
return new_str;
}
int main()
{
string str = "Apple";
str = fun(str);
cout << str << endl;
return 0;
}
上面的代码,在 Visual Studio 2022 调试时,在自动窗口看到 fun 函数中的 new_str 变量显示“读取字符串字符时出错”,展开查看每一个字符时又看到“无法读取内存”。与此同时,程序运行却一切正常。这是为什么?
另外,这一情况仅发生在子函数里,而在 main 中一切正常。

代码是没问题的,我在两个在线编译平台上编译的结果都正常

在python123.io上运行结果如下:

在onlinegdb.com上运行结果如下:

所以应该是编译器的问题,但具体什么原因我也不清楚,只是帮你排除代码的原因~

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-11-30
这看起来时visual studio 2022调试器的bug,你代码应该没有问题
相似回答
大家正在搜