2016-07-27 86 views
0
struct ArrayQueue *Q = (struct ArrayQueue*)malloc(sizeof(struct ArrayQueue)); 

VS是什么区别:

struct ArrayQueue *Q = malloc(sizeof(struct ArrayQueue)); 

我何时?他们承担什么区别使用什么有点糊涂了?直觉上,我觉得第一种用法是当我在一个函数中写作时,第二种用法是当我在一个结构中写作时。

+0

你是用C写的吗? – yellowantphil

+0

是的,我在C写作。 –

+0

Narsimha Karumanchi在他的书中使用过两种用法... –

回答

0

默认情况下,函数malloc返回一个void *。虽然你不必显式地转换为你想要的类型(编译器会这样做),但有程序员喜欢更清晰。

这取决于你的编码风格,两者都可以接受。