2012-01-26 192 views
1

(int *)在下面的代码中做了什么?malloc意味着什么(int *)?

int *ptr = (int *) malloc(10 * sizeof (int)); 

我是新来的C和我已经看到了上面的代码使用和不使用(INT *),所以我想知道它做什么。

+0

可能重复[是malloc需要的类型转换吗?](http://stackoverflow.com/questions/4993327/is-typecast-required-in-malloc) – Lundin

回答

7

这意味着“投了void*指针变成int*指针” - malloc()回报void*你问的编译器把该void*,仿佛它是int*。围绕malloc()的这个构造仅在C++代码中需要,并且是totally unneeded and even evil in C,因为它可能导致相当微妙但具有破坏性的错误。

+0

ahh好吧,清除所有的东西给我。谢谢! – Lex