在函数中申明的局部变量是存放在栈中的,内存管理里面说不能返回栈里的指针.
比如
#include <iostream>
#include <string>
using namespace std;
char * test1()
{
char a[10] = "sddsds";
return a;
}
char * test2()
{
char * psz="sddsds";
return psz;
}
int main()
{
cout<<test1()<<endl;
cout<<test2()<<endl;
}
为什么test1返回是错的,而test2返回的是对的? 一直不太理解. |