Ale*_*win 2 c malloc casting compiler-errors
我正在检查不需要显式地转换malloc调用结果的代码,但每当我尝试这样做时,编译器都会抛出错误.
即
char *somevar;
somevar = malloc(sizeof(char) * n); //error
somevar = (char *)malloc(sizeof(char) * n); // ok
Run Code Online (Sandbox Code Playgroud)
如果使用C++编译器而不是C编译器,则会发生这种情况.因为C++需要显式转换.问题不只是(un)转换malloc结果,而是任何指向其他指针的void指针.