While studying in detail about malloc() I came across this strange behavior.
int *p;
p=(int*)malloc(10.45);
p=(int*)malloc(10.45f);
p=(int*)malloc('j');
The program compiles with any of these statements with just a warning and returns a valid address. What's the real result here?