что означает (int *) перед malloc? - PullRequest
1 голос
/ 26 января 2012

что (int *) делает в следующем коде?

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

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

1 Ответ

7 голосов
/ 26 января 2012

Это означает «приведение указателя void* в указатель int*» - malloc() возвращает void*, и вы просите компилятор обработать это void*, как если бы оно было int*. Эта конструкция около malloc() необходима только в коде C ++, и совершенно не нужна и даже зла в C , потому что она может вызвать довольно тонкие, но разрушительные ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...