我刚刚学会了如何使用malloc函数,我的老师提到在将内存地址传递给指针时需要进行类型转换。例如,这是使用malloc:
获取16个新字节(4个整数)的代码#include <stdlib.h>
int main(){
int *p;
p = (int *)malloc(4*sizeof(int));
return 0;
}
我的问题:归属右侧的(int *)演员是否必要?毕竟p已经是一个指向int的指针,所以即使没有那个转换,指针算术也应该正常工作。
由于
答案 0 :(得分:5)
如果在C ++代码中使用malloc,则只需要强制转换。
对于C,不最好使用强制转换,因为它是(a)不必要的,(b)可以掩盖编译器报告的问题。