Re: inside scanf [trap rep]



On Jan 31, 11:59 am, CBFalconer <cbfalco...@xxxxxxxxx> wrote:
temper3...@xxxxxxxxx wrote:

Can someone explain me what is happening below ? Why is it printing
401380

$ cat scanf.c
#include<stdio.h>

int main()
{
int i;
scanf(" %d",&i);
printf("%x\n",i);
return 0;
}

prog@cygwin ~
$ ./a.exe
-1
ffffffff

prog@cygwin ~
$ ./a.exe
--1
401380

Why don't you give it an integer for input? Usual sin - failure to
check the return value from scanf.

Few more questions
1) Can a variable contain trap representation(trap rep) say a local
variable like int i;
2) Can a pointer contain trap rep ? like say int *p, can p be a trap
rep.
3) Can address of an uninitialized variable every contain trap rep ?
i.e can "&i" contain trap rep
4) Can we get to assign trap rep "on a 2's complement machine" ? i.e
int i= value_of_traprep;
printf(" %d",i); will it abort ;
5) On a 1's complement machine is trap rep always ~0 or is it
different.
When ~0 is trap rep,
what happens,
int i=~0,
printf(" %d",i); will it abort ;

6) How do i get what is the value for trap rep on my arch (i386) .

.



Relevant Pages