This is probably a very elementary problem, but I cannot find the answer anywhere, and this is the first time I\'ve had the problem after several weeks of programming in C. In e
The calling conventions are different in printf, and scanf.
Printf's arguments are typically by value (no &), but scanf has to have pointers. (&)
(You can't put a new value to e.g. 1.0, but you can print it...)
You have to do:
printf("size is %d", size);
instead. This prints the value of the int
object size
.
But
printf("size is %d", &size);
is undefined behavior.
You are printing the address of size
, i.e., &size
.
Just pass a plain size
.
Try
printf("size is %d", size);
&
gives you the memory location (address) of a variable.
printf("size is %d", &size);
So, the above will print the memory location(address) of size
, not the value stored in size
.
Remove the &
in the printf
statement as &size
--> prints the address.
printf("size is %d", size);