(int *)在以下代码中做了什么?
int *ptr = (int *) malloc(10 * sizeof (int));
我是C的新手,我已经看到上面的代码有和没有(int *)所以我想知道它做了什么。
答案 0 :(得分:7)
这意味着“将void*
指针强制转换为int*
指针” - malloc()
返回void*
,并要求编译器将void*
视为int*
它是malloc()
。围绕{{1}}的这个构造仅在C ++代码中需要,并且是totally unneeded and even evil in C,因为它可能导致相当微妙但毁灭性的错误。