int *dangle(int num)
{
int temp=5;
return(&temp);
}

void main()
{

int *iptr,deng=56;

iptr=dangle(deng);
printf("%d",*iptr);
}

I read that this code is not correct,since iptr is being assigned address of a
variable which losses it's scope when control reaches back to main,i.e temp variable
is lost.
BUT when i compiled and ran this code it produced no error,rather it gave output
5!!!.here every thing seems all right,then why it has been said that it's wrong?