Я работаю над старой базой кода, и почти каждый вызов free() использует приведение в свой аргумент. Например,
free((float *)velocity);
free((float *)acceleration);
free((char *)label);
где каждый указатель имеет соответствующий (и соответствующий) тип. Я не вижу смысла делать это вообще. Это очень старый код, поэтому мне осталось интересно, есть ли это K & R. Если это так, я действительно хочу поддержать старые компиляторы, которые могут потребовать этого, поэтому я не хочу их удалять.
Есть ли техническая причина использовать эти приведения? Я даже не вижу прагматичной причины использовать их. Какой смысл напоминать себе тип данных прямо перед его освобождением?
EDIT: Этот вопрос не является дубликатом другого вопроса. Другой вопрос - это особый случай этого вопроса, который, я думаю, очевиден, если бы те, кто был заинтересован, читали все ответы.
Colophon: я даю "const answer" галочку, потому что это настоящая причина, почему это может потребоваться; тем не менее, ответ на вопрос о том, что он является обычным ANSI C (по крайней мере, среди некоторых программистов), по-видимому, является причиной его использования в моем случае. Здесь много хороших моментов. Спасибо за ваши вклады.