在这个问题中,有人在评论中建议我不应该施放 malloc
, i.e 的结果::
int *sieve = malloc(sizeof(int)*length);
而不是:
int *sieve = (int *)malloc(sizeof(int)*length);
为什么会这样?
编辑
标记为重复,因为我研究不够。
在C中,您可以将void*
(malloc
的返回类型)隐式转换为任何其他指针类型。因此,不需要演员阵容,被认为是很好的C风格。
在C 中,您不能隐式从void*
转换为任何其他指针类型,因此需要铸件。也就是说,在C 中,您几乎应该肯定使用new
和delete
而不是malloc
,因为它们更易于使用,可以与构造函数和破坏者一起使用,等等。
希望这会有所帮助!