Что делает (int *) в следующем коде?Что делает (int *), прежде чем malloc означает?
int *ptr = (int *) malloc(10 * sizeof (int));
Я новичок в C, и я видел, приведенный выше код с и без (INT *) так что им интересно, что это делает.
Что делает (int *) в следующем коде?Что делает (int *), прежде чем malloc означает?
int *ptr = (int *) malloc(10 * sizeof (int));
Я новичок в C, и я видел, приведенный выше код с и без (INT *) так что им интересно, что это делает.
Это означает, что «бросить void*
указатель в int*
указатель» - malloc()
возвращает void*
и вы просите компилятор лечить, что void*
, как если бы это было int*
. Эта конструкция около malloc()
нужна только в коде C++ и равна totally unneeded and even evil in C, поскольку она может вызвать довольно тонкие, но разрушительные ошибки.
ahh ok, который очищает все для меня. Спасибо! – Lex
Возможный дубликат [Является ли typecast обязательным в malloc?] (Http://stackoverflow.com/questions/4993327/is-typecast-required-in-malloc) – Lundin