每个人都建议在这里分配指针时不要投射,我是否投射了malloc的结果
但是我下面的非强制转换代码在VS-2013中产生编译器错误。为什么!
#include <stdio.h>
#include <malloc.h>
int main(){
int *ptr = malloc(sizeof(int) * 100); // compiler error
return 0;
}
编译器错误是,
1 智能感知:不能使用类型为"void *"的值来初始化 类型为"int *"的实体
另一个问题中的建议仅供C
使用。
在C++
中,你需要强制转换,因为C++
不允许将void*
指针隐式转换为任何其他指针类型。