- #include <stdio.h>
- char *
- getStr()
- {
- char s[] = "hello";
- return s; //error: stack data will be invalid after return
- }
- char *
- getStr1()
- {
- char *s = "hello";
- return s; //ok: s is on .data area
- }
- char *
- getStr2()
- {
- static char s[] = "hello";
- return s; //ok: s is on .data area too
- }
- int
- main(void)
- {
- printf(getStr());
- printf(getStr1());
- printf(getStr2());
- printf("\n");
- return 0;
- }