adspace
main()
{
int *j;
{
int i=10;
j=&i;
}
printf("%d",*j);
}
Answer Posted / ashish p
The answer is undefined.
int *j;
{ //prolog
int i=10;
j = &i;
}//epilog
in the above code , at the prolog level the variables are
pushed into a un-named function space on the stack. Whereas
at epilog level the variable i dies.
J contains address of valid memory location but invalid
contents. Since i's memory is release back, any other
program can claim it and over-ride the contenets. Unless
then if we try to print the content using J it will give us
the value 10.
Which is not recommended it is something like returning
reference to the local variable in a function.
| Is This Answer Correct ? | 1 Yes | 1 No |
Post New Answer View All Answers