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 *
被用作通用指针.