问题遇到的现象和发生背景
问题代码如下,我开始以为是ss数组中没有设置空字符。但是设置以后依然输出乱码,问题在哪呢到底?
问题相关代码,请勿粘贴截图
char* test(int a)
{
char n[] = "g123";
char ss[5] = { 0};
/*ss[3] = { '\0' };*/
ss[0] = 'G';
ss[1] = '0';
ss[a] = n[0];
ss[a + 1] = n[1];
cout << ss << endl;
return ss;
}
int main()
{
vector<char*> s;
for (int i = 0; i < 2; i++)
{
s.push_back((char*)test(2));
}
cout <<test(2) << endl;
cout << s[0] << endl;
return 0;
}
运行结果及报错内容
我的解答思路和尝试过的方法
我单独输出test(2)都没问题,不知道vector为啥会乱码。