在 Visual Studio 2022 中调试时,C++ 语言的子函数内“读取字符串字符时出错”,这是为啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 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上运行结果如下:
所以应该是编译器的问题,但具体什么原因我也不清楚,只是帮你排除代码的原因~
在Visual Studio中调试时,如何检查有关进程令牌的详细信息?
从Visual Studio 2005开始,watch窗口获得了一个伪寄存器,用于调查有关进程令牌的详细信息。所以,你只要开始调试,在监视窗口中写下“$user”,
有时查看特权和组的扩展视图会很有趣!
以上是关于在 Visual Studio 2022 中调试时,C++ 语言的子函数内“读取字符串字符时出错”,这是为啥?的主要内容,如果未能解决你的问题,请参考以下文章
远程 Azure 服务器上的 Visual Studio 2022 调试
Visual Studio 2022的一个惊艳新功能开发隧道
在 Visual Studio 2019 中首次启动时,Android 模拟器未显示在调试菜单中