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