读书人

输入5个字符输出的却不是那五个字符

发布时间: 2012-05-14 15:24:34 作者: rapoo

输入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]的地址,很显然这个地址的内容已经不是原来你想要的那个内容了。所以不是了。建议不要返回局部变量的地址。

读书人网 >C++

热点推荐