2012-01-26 3 views
1

Что делает (int *) в следующем коде?Что делает (int *), прежде чем malloc означает?

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

Я новичок в C, и я видел, приведенный выше код с и без (INT *) так что им интересно, что это делает.

+0

Возможный дубликат [Является ли typecast обязательным в 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 ok, который очищает все для меня. Спасибо! – Lex

Смежные вопросы