马洛克铸造错误

malloc casting error

本文关键字:错误 洛克 马洛克      更新时间:2023-10-16

每个人都建议在这里分配指针时不要投射,我是否投射了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*指针隐转换为任何其他指针类型。