我遇到了这段代码:
void incme(double *p)
{
*p += 1;
}
int i = 1;
incme((double *)&i); /* WRONG */
Run Code Online (Sandbox Code Playgroud)
当我尝试执行它时,我得到核心转储.这段代码有什么问题.我们可以不输入强制转换为double类型的int指针.
谢谢.
你没有投出int一个double,你正在int *投入一个double *.如果sizeof(double)和sizeof(int)不一样那就不安全......
即使您匹配存储大小,您对输出的期望是什么?浮点类型和整数往往没有任何类型的兼容表示.