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