Chinaunix首页 | 论坛 | 博客
  • 博客访问: 368954
  • 博文数量: 100
  • 博客积分: 2500
  • 博客等级: 大尉
  • 技术积分: 1209
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-15 21:24
文章分类

全部博文(100)

文章存档

2011年(100)

分类: C/C++

2011-05-05 09:00:18

  1. #include <stdio.h>

  2. char *
  3. getStr()
  4. {
  5.         char s[] = "hello";

  6.         return s;    //error: stack data will be invalid after return
  7. }

  8. char *
  9. getStr1()
  10. {
  11.         char *s = "hello";

  12.         return s;    //ok: s is on .data area
  13. }

  14. char *
  15. getStr2()
  16. {
  17.         static char s[] = "hello";

  18.         return s;   //ok: s is on .data area too
  19. }

  20. int
  21. main(void)
  22. {
  23.         printf(getStr());
  24.         printf(getStr1());
  25.         printf(getStr2());

  26.         printf("\n");

  27.         return 0;
  28. }

阅读(1846) | 评论(2) | 转发(1) |
0

上一篇:栈 III

下一篇:string之strlen

给主人留下些什么吧!~~

onezeroone2011-05-05 22:16:08

GFree_Wind: 其实可以的例子就不是返回局部变量。.....
恩, 只是看起来像局部变量。

GFree_Wind2011-05-05 12:20:49

其实可以的例子就不是返回局部变量。