有什么区别:

时间:2016-07-27 17:05:17

标签: c syntax malloc

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

VS

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

我对什么时候使用以及它们究竟有什么区别感到困惑?直观地说,我觉得第一种用法是当我在一个函数内写作时,第二种用法就是当我在一个结构中写作时。

1 个答案:

答案 0 :(得分:0)

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

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