Comment gèrer les erreurs d'allocation?

Comment gèrer les erreurs d'allocation?

by Dario Yann Goedtkindt -
Number of replies: 2

Bonjour,

Concernant la série notée 2:

Comment est-ce qu'on devrait gèrer quand un malloc ou calloc retourne NULL? Est-ce acceptable de fprintf un message d'erreur et exit?

Merci de votre réponse

In reply to Dario Yann Goedtkindt

Re: Comment gèrer les erreurs d'allocation?

by Jean-Cédric Chappelier -

gérez cela proprement (à votre manière), mais sans effet de bord.
(Sortir avec « exit » n'est pas « propre » : la seule façon propre de sortir est par un return du main()).

In reply to Jean-Cédric Chappelier

Re: Comment gèrer les erreurs d'allocation?

by Jean-Cédric Chappelier -

un petit complément (même si ce n'est pas 100% lié à la question de départ ; mais ça touche aux pointeurs nuls) :
pour gérer « sans effet de bord » les pointeurs nuls, le mieux est de garantir un fonctionnement correct (= qui fait sens) dans ces cas. P.ex. une file qui n'existe pas du tout me semble assez naturellement être vide ; pop sur une file qui n'existe pas du tout me semble devoir retourner « pas de tâche » etc.
Si vraiment, aucun sens ne peut être donné à de tels comportements, alors indiquez le par un commentaire comme un choix arbitraire (il y a bien des « undefined behaviour » même dans la norme du C elle-même),