This problem was suggested to me by a friend.
The code is -
Compiling this on GCC gives the above warning because k is a local variable and it will go out of scope once the function returns. Yet, when I run the program I get a perfectly correct output. That is 35. Why is this? Shouldn't I be getting garbage value?Code:/* Returning a pointer to an out of scope variable */ # include <stdio.h> int* fun(){ int k = 35; return &k; } int main(void){ int *j; j = fun(); printf("%d",*j); return 0; }