输入5个字符,输出的却不是那五个字符!!!! 求指点!!
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
char* x()
{
char m;
int i;
vector<char> v;
for(i=0;i<4;i++)
{
cin >>m;
v.push_back(m);
}
return &v[0];
}
int main()
{
char *p;
p=x();
for(int i=0;i<4;i++)
cout <<*(p+i) <<endl;
return 0;
}
[解决办法]
vector<char> v;定义在局部函数内,当函数结束后,这个变量就不存在了,那么你返回的是v[0]的地址,很显然这个地址的内容已经不是原来你想要的那个内容了。所以不是了。建议不要返回局部变量的地址。