Re[4]: Правильно ли используется выделение памяти и пользова
От: vis1979  
Дата: 19.11.06 09:01
Оценка:
Здравствуйте, Андрей Тарасевич, Вы писали:

АТ>>>никакого приведения типа не надо


RO>>...но лучше его всё же писать. Для forward compatibility


АТ>Как раз таки наоборот. Лучше его не писать, ибо явное приведение типа в такой ситуации может привести к маскированию грубой ошибки. А именно, если автор кода забудет включить заголовочный файл с корректным объявлением 'malloc', то компилятор С выполнит неявное объявление 'malloc' с подразумеваемым типом возврата 'int'. Без приведения типа попытка присваивания этого 'int' указателю сразу приведет к ошибке компиляции, а с приведением типа код будет принят и ошибка окажется замаскированной. На платформе с одинаковым размером указателя и 'int' это еще может худо-бедно "работать", но в общем случае — беда.


АТ>Поэтому существует достаточно известный совет — никогда не приводите тип возврата 'malloc'.


Большое спасибо за то что просветили, но
вопрос такой, а я вроде и не включаю никакой заголовочный файл с коректным описанием,
я думал что по умолчанию malloc возвращает указатель на воид так и в хелпе объявлено, или это не так?
при этом без приведения типа также компилируется
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.