int *mysub (); main() { int* x; x = mysub(); printf("in main x = %d\n", *x); *x = 5; x = mysub(); } int *mysub () { int z; printf("in sub z = %d\n", z); z = 3; return &z; } #### $ make temp gcc temp.c -o temp temp.c: In function `mysub': temp.c:13: warning: function returns address of local variable #### $ temp in sub z = 0 in main x = 3 in sub z = 5 #### use strict; my $x; $x = &mysub; printf "in main \$x = %d\n", $$x; $$x = 5; $x = &mysub; sub mysub () { my $z; printf "in sub \$z = %d\n", $z; $z = 3; return \$z; } #### $ perl temp.pl in sub $z = 0 in main $x = 3 in sub $z = 0 #### int *mysub () { static int z; ...