malloc返回值根本不需要类型转换。。。 历史上曾经需要把malloc的返回指针强制转换,那是因为当时malloc的返回值是 char*,, ,后来c引入了void *类型,根本就不需要转换了。而且编译器不会给出任何警告! void *类型本来就是为了这种目的而引入的! 你再加一个类型转换,就多此一举了。
因为malloc函数返回的是void类型指针,而不同类型的指针是不能相互赋值的。就像你不能把int类型的指针附给char类型的指针一样。所以通过强制转换为需要的类型,才能方便使用。