gpt4 book ai didi

c++ - char * 投入 cout 时得到垃圾

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:19:37 25 4
gpt4 key购买 nike

获取字符指针并将其放入输出的简单程序。

char * get()
{
char ss [256];
sprintf (ss,"%d",1);
return ss;
}

int _tmain(int argc, _TCHAR* argv[])
{
char *f = get();
cout<<f;
char d[50] ;
cin>> d;
}

我的输出只有垃圾。为什么?

最佳答案

函数正在返回局部变量的地址。该代码具有未定义的行为并会产生无法预料的结果。

ss 驻留在堆栈上,函数 get() 返回指向它的指针。

char * get()
{
} // Life time of ss ends here

使用std::string相反。

关于c++ - char * 投入 cout 时得到垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11544415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com