Re[3]: Правильно ли используется выделение памяти и пользова
От: Андрей Тарасевич Беларусь  
Дата: 19.11.06 08:15
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

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


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


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

Поэтому существует достаточно известный совет — никогда не приводите тип возврата 'malloc'.
Best regards,
Андрей Тарасевич
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.