Hi guys, This is my first email in this list, any help is much appreciated. As I know, it's not allowed to pass a local variable to a function, because the stack where local variable resides will be reused by other functions. eg: 1 #include <stdio.h> 2 3 char *fetch(); 4 5 int main(int argc, char *argv[]){ 6 char *string; 7 string = fetch(); 8 printf("%s\n", string); 9 exit(0); 10 } 11 12 char *fetch(){ 13 char string[10]; 14 scanf("%s", string); 15 return string; 16 } When the application is executed, after input "a", it will produce unknown characters, like "8Šè¿ôÿO". Which is like what I expect However, if I change line 13 to: 13 char string[1024]; When I type "a", it echos "a", which is out of my expectation Why does it behave like this? Thanks in advance, longapple -- To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html