sous linux malloc (en fait l'appel système brk) ne renvois jamais null
Ce n’est pas figé dans le marbre. Le comportement est configurable par l’administrateur du système, donc même dans le cas d’un programme qui n’ambitionne pas d’être portable sur un autre OS il vaut mieux ne pas compter sur le comportement par défaut.
Pour mémoire, les comportements possibles sont :
ne jamais retourner NULL (overcommit) ;
retourner NULL dès lors que le processus consomme déjà une certaine quantité de mémoire (pas d’overcommit du tout), la limite par défaut étant fixée à la taille du swap + la moitié de la mémoire physique ;
ne pas retourner NULL sur la plupart des allocations (quitte à overcommitter s’il le faut), mais refuser quand même les allocations jugées « démesurées » — c’est le mode par défaut.
[^] # Re: undefined behaviour
Posté par gouttegd . En réponse au journal Gestion des erreurs d’allocation mémoire en C. Évalué à 5.
Ce n’est pas figé dans le marbre. Le comportement est configurable par l’administrateur du système, donc même dans le cas d’un programme qui n’ambitionne pas d’être portable sur un autre OS il vaut mieux ne pas compter sur le comportement par défaut.
Pour mémoire, les comportements possibles sont :