malloc函数,它的使命是为指针开辟连续的一片内存,免得指针定义了,却指向不明,有了malloc,指针有备无患。
然而经常看到这样的语句:
p=(int *)malloc(sizeof(int));
作为一个极简主义者,眼里容不得半点莫名其妙的东西,我忍不住问,为何要加上类型转换?
问题在特定的地方才会暴露,真相是,C语言中完全不必类型转换,但在c++中,这样的语句无法编译通过。
好了,我们懂了,加上类型转换,即使移植到c++中,程序也能妥妥运行。
malloc函数,它的使命是为指针开辟连续的一片内存,免得指针定义了,却指向不明,有了malloc,指针有备无患。
然而经常看到这样的语句:
p=(int *)malloc(sizeof(int));
作为一个极简主义者,眼里容不得半点莫名其妙的东西,我忍不住问,为何要加上类型转换?
问题在特定的地方才会暴露,真相是,C语言中完全不必类型转换,但在c++中,这样的语句无法编译通过。
好了,我们懂了,加上类型转换,即使移植到c++中,程序也能妥妥运行。