返回栈内存指针,照理说内容应该清空,返回了之后为啥还有
[解决办法]
内容还没被覆盖
[解决办法]
#include <iostream>
using namespace std;
char *GetString(void)
{
char p[] = "hello world";
return p; // 编译器将提出警告
}
void foo(void)//加个函数进去。
{
char p[] = "edit char";
}
void main()
{
char *str = NULL;
str = GetString(); // str 的内容是垃圾
foo();//加个函数进去。
cout<<*str<< endl;
system("pause");
}
和时间没直接关联,因为栈没给覆盖。vs2008下debug模式,会输出e。但release模式,会优化掉foo()函数,也会显示h。