为什么我必须从malloc转换结果?

Nik*_*nka 5 c malloc

以下代码给出了错误 "error: invalid conversion from void* to char* [-fpermissive]"

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(){
    char *t = malloc(20);
}
Run Code Online (Sandbox Code Playgroud)

但是,转换malloc的结果可以解决问题.但我无法理解为什么这个问题说不需要转换malloc的结果.

zwo*_*wol 16

您使用C++编译器编译了此C程序.它必要的,C++铸造的malloc的结果,但不是在C.


Pet*_*ter 5

您是否有可能将代码编译为c ++?在c ++中,需要演员表.