家伙我用C编程,试图做一个char类型这样的动态分配:的malloc使用C返回void
char **word1 = malloc(sizeof(char *)* 1);
char **word2 = malloc(sizeof(char *) * 1);
但它导致这样的埃罗:从“无效无效的转换*'到'char **'[-fpermissive]
感谢每一位帮助我的人。
家伙我用C编程,试图做一个char类型这样的动态分配:的malloc使用C返回void
char **word1 = malloc(sizeof(char *)* 1);
char **word2 = malloc(sizeof(char *) * 1);
但它导致这样的埃罗:从“无效无效的转换*'到'char **'[-fpermissive]
感谢每一位帮助我的人。
在c
编译器[gcc
],这个错误不会显示出来。
在c++
编译器[g++
]中,这个错误很可能发生。
摆脱这一点,无论是
c
编译器来编译上面的代码。c++
编译器并将char **
强制转换为malloc()
返回值。注:国际海事组织,去第一点。 neither to use malloc()
family in c++
,也不是malloc()
的casting the return。
一个有教养的猜测:你使用的是C++编译器。 C不需要从void*
转换到其他指针类型,但是C++
会。
考虑使用C编译器,还是使用由malloc
返回的值。
“考虑使用C编译器,或者转换malloc返回的值。” *但不是两个!! * – Roddy 2014-12-04 09:27:26
这就是'任一'应该强调的,罗迪。 – 2014-12-04 09:31:53
malloc返回'void *'你需要强制转换成'char *'在等号后面加一个'(char *)'。 – 2014-12-04 09:19:32
然后你很可能不会编译C代码,而是编写C++代码。如果你正在编程C++,那么你不应该使用'malloc' /'free',事实上,现在你几乎不必在C++中使用指针。 – 2014-12-04 09:20:17
看起来像来自C++编译器的错误。 – sgarizvi 2014-12-04 09:20:19