我在学习指南中发现了这个问题,我不确定为什么返回指向局部变量/参数的指针会很糟糕.有任何想法吗?
我有这个代码
int main()
{
char A = 'E';
const char * i;
i = &A;
A = 'B';
}
Run Code Online (Sandbox Code Playgroud)
实际上编译MSVC,为什么?是不是const char*应该指向一个常量字符变量?为什么我可以在最后一行将A改为'B'?
我错过了什么吗?
这是我简单程序的一部分
string appData = getenv("APPDATA");
const char *mypath= (appData+"\\MyApplication\\hello.txt").c_str();
cout << mypath;
// output: c:\users\xrobot\appdata\Roaming\Myapplication\hello.txt
fstream file(mypath,ios::in);
ofstream filetemp;
filetemp.open("world.bak");
cout << mypath;
// output: É?7
Run Code Online (Sandbox Code Playgroud)
为什么mypath在那个奇怪的字符串中改变了?