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. }

09-15 10:44
查看更多