Зачем нужно приведение указателя?
Есть такой код:
int *i=(int*)malloc(50*sizeof(int));
У меня 2 вопроса:
1)Зачем нужно явное приведение типа (int*)?Что происходит когда мы явно пишем
2)Шилдт пишет про то что,когда мы пишем sizeof(int),мы организовываем машинонезависимость.В чем заключается эта независимость?Размер int в разных системах разный?
Ответы (1 шт):
Автор решения: HolyBlackCat
→ Ссылка
Каст (int *) меняет тип указателя с void * на int *, значение указателя при этом не меняется. В C то же самое происходит автоматически и без каста (каст не нужен), а в С++ без каста не скомпилируется (потому что типы указателей не совпадают).
Размер int в разных системах разный?
Теоретически может быть разный, но чаще всего int 4-байтовый.