简单问题,送分

ruisheng 2005-04-26 09:23:31
char *aa()
{
char str[10];
strcpy(str,"123");
return str;
}

main()
{
char *bb;
bb = aa();
printf("%s",bb);
}
请问这程序有没有错,但是输出结果是正确的,请指点!
...全文
92 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ainibaobao 2005-04-26
  • 打赏
  • 举报
回复
我不赞成这么用,很危险的.
但是局部非静态数组的内存空间没有被释放啊..(如果输出是对的话)
zhousqy 2005-04-26
  • 打赏
  • 举报
回复
返回局部非静态数组的地址
或者应用都是鲁莽的行为
危险的行为
========
顶一下。
llmsn 2005-04-26
  • 打赏
  • 举报
回复
不过返回局部指针是挺不安全的,同意1楼的说法.
llmsn 2005-04-26
  • 打赏
  • 举报
回复
我觉得这个有时候也是需要的.
llmsn 2005-04-26
  • 打赏
  • 举报
回复
不过有些程序返回的也是局部变量,
n88n 2005-04-26
  • 打赏
  • 举报
回复
我明白了,我错了,应该是你在 *aa()中返回str[]时,局部变量的内存被释放了,所以是不对的
zhongwei5695 2005-04-26
  • 打赏
  • 举报
回复
好像似乎应该是正确得
嘎嘎
好好学习
ruisheng 2005-04-26
  • 打赏
  • 举报
回复
我也认为这个程序不安全,但在BCB和GCC编译的结果都一样,能够正常输出,所以觉得疑惑
lbing7 2005-04-26
  • 打赏
  • 举报
回复
pcboyxhy(-273.15℃)

你真的太快了

不厚道

n88n 2005-04-26
  • 打赏
  • 举报
回复
没有问题的.
pcboyxhy 2005-04-26
  • 打赏
  • 举报
回复
广义的说
返回一个超出作用域的原件是危险的
pcboyxhy 2005-04-26
  • 打赏
  • 举报
回复
返回局部非静态数组的地址
或者应用都是鲁莽的行为
危险的行为

33,319

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧