为什么我必须从malloc投出结果?
以下代码给出了错误"error: invalid conversion from void* to char* [-fpermissive]"
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
char *t = malloc(20);
}
但是,投射malloc的结果解决了这个问题。 但我不明白为什么这个问题说不需要投射malloc的结果。
你使用C ++编译器编译这个C程序。 有必要在C ++中投射malloc的结果,而不是在C中。
是否有可能你编译的代码为c ++? 在C ++中,投射是必需的。
在你的情况下,
malloc(20);
将根据需要分配内存,并返回一个可以分配给任何指针的指针,如本文档中所述
正如所指出的那样,你可能正在使用C ++编译器,因为在C中它实际上被认为是投射malloc结果的一个坏习惯。
链接地址: http://www.djcxy.com/p/4867.html