如果在malloc中传递float,double或even char值会发生什么

use*_*165 -4 c malloc

在详细研究malloc()时,我遇到了这种奇怪的行为.

int *p;
p=(int*)malloc(10.45);
p=(int*)malloc(10.45f);
p=(int*)malloc('j');
Run Code Online (Sandbox Code Playgroud)

程序只使用警告编译任何这些语句并返回有效地址.这里真正的结果是什么?

Car*_*rum 5

size_t在调用函数之前,所有这些值都被隐式转换为,就像你有一个显式的强制转换一样.浮点数被截断,并'j'在您的字符集中被解释为其数值.