首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求大神解释为何输出乱码,而不是“hello”和乱码?

2013-09-29 
求大神解释为什么输出乱码,而不是“hello”和乱码???#include iostreamusing namespace stdchar* get_str

求大神解释为什么输出乱码,而不是“hello”和乱码???

#include <iostream>
using namespace std;
char* get_str()
{
char str[] = {"hello"};
return str;
}
char * get_str2()
{
char str[] = {"hello"};
return str;
}
int main()
{
char* p = get_str();
printf("%s\n",p);
char*p2 = get_str2();
printf("%s\n",p2);
system("pause");
return 0;
}

[解决办法]
char str[] = {"hello"};是局部变量,在栈上分配的内存空间。函数运行结束之后,栈的内存就释放了,而你返回了一个指针,指向一个已经被释放了内存的地址空间,肯定乱码了

热点排行