use*_*839 15 c malloc syntax free
我正在努力将许多C程序从Unix转换为Linux,这种free()语法引起了我的注意:
free((char *) area );
Run Code Online (Sandbox Code Playgroud)
这和之间有什么区别free( area );?
Yu *_*Hao 17
签名free是:
void free(void *ptr);
Run Code Online (Sandbox Code Playgroud)
因此,如果area是malloc由其表兄弟返回的指针类型,则转换free((char *) area );是毫无意义的.
除非...如果代码真的,真的很旧,那就是在ANSI Cvoid *作为通用指针引入之前.在那个古老的时代,char *被用作通用指针.