可能重复:
可以在其范围之外访问局部变量的内存吗?
我已经使用指针声明了一个 C 风格的数组,并为其分配了一个函数返回的值。
1.const char* str = chArr->readString();
在上面之后,我想按如下方式计算 str :
2.cout << "pointer to char is = " << str <<endl;
是readString
:
char* CharArray::readString()
{
std::cout << "Insert a string of max 19 length:" <<std::endl;
char string[20];
std::cin.getline(string,20,'\n');
return string;
}
当我在第 2 行设置断点时,我可以看到正确的结果为str
. 但是控制台窗口什么也没有显示,在通过第 2 步后,当我查看str
值时,它显示类似“ P÷7
”或“ äû:
”,..
也许值得一提的是,对于长度为 4,5 的 str I 字符串。尽管 str 的长度不是 19。