- #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;
- }