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

输入5个字符,输出的却不是那五个字符! 求指点!该如何处理

2012-05-14 
输入5个字符,输出的却不是那五个字符!!!!求指点!!#include iostream#include fstream#include vector

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

热点排行