Je suis en train de travailler sur une ancienne base de code et à peu près chaque appel de free() utilise un plâtre sur son argument. Par exemple,
free((float *)velocity);
free((float *)acceleration);
free((char *)label);
où chaque pointeur est du correspondant (et de la correspondance) de type. Je ne vois pas l'intérêt de faire cela. C'est très vieux code, donc je me demandais si c'est un K&R chose. Si oui, en fait, je souhaite soutenir l'ancienne compilateurs qui auraient eu besoin de cela, alors je ne veux pas les supprimer.
Est-il une raison technique à utiliser ces distributions? Je n'ai pas encore vu beaucoup de raison pragmatique à les utiliser. Quel est le point de nous rappeler le type de données à droite avant de la libérer?
EDIT: Cette question n'est pas un doublon de l'autre question. L'autre question est un cas particulier de cette question, qui je pense est évident si l'fermez les électeurs de lire toutes les réponses.
Colophon: je suis en train de donner le "const réponse" le coche parce que c'est une bonne foi vraie raison pour laquelle cette opération peut être effectuée; toutefois, la réponse à ce sujet étant un pré-ANSI C personnalisé (au moins chez certains programmeurs) semble être la raison pour laquelle il a été utilisé dans mon cas. Beaucoup de bons points par beaucoup de gens ici. Je vous remercie pour vos contributions.