Je vois pas pourquoi tu imagines que les utilisateurs de "langages modernes" peuvent se passer de ce genre de considération. Que fera la jvm (par exemple) si elle exécute un algo qui a besoin d'allouer 1 To si la machine peut pas lui fournir ? C'est pas une question rhétorique d'ailleurs, j'en sais rien, mais ce que je sais ce qu'elle fait pas de magie, donc elle y arrivera pas.
Je ne sais pas ce que fait la JVM, mais Python, par exemple, lèvera une belle exception MemoryError qui provoquera l'affichage de la pile d'appels et la terminaison du programme (sauf si le programme attrape l'exception au vol mais, dans le cas de MemoryError, cela ne me semble pas vraiment souhaitable).
il y a toujours ce petit truc qui gratte. Je préférerai bien évidemment qu'ils marchent coûte que coûte.
Je ne pense pas qu'il s'agit de faire en sorte que les programmes « marchent coûte que coûte » (c'est un combat perdu d'avance) mais simplement que le retour d'erreur soit clair et informatif, plutôt que de risquer un plantage ou un comportement erroné, ce qui est possible en C.
[^] # Re: Langages modernes
Posté par Antoine . En réponse au journal Gestion des erreurs d’allocation mémoire en C. Évalué à 6.
Je ne sais pas ce que fait la JVM, mais Python, par exemple, lèvera une belle exception MemoryError qui provoquera l'affichage de la pile d'appels et la terminaison du programme (sauf si le programme attrape l'exception au vol mais, dans le cas de MemoryError, cela ne me semble pas vraiment souhaitable).
Je ne pense pas qu'il s'agit de faire en sorte que les programmes « marchent coûte que coûte » (c'est un combat perdu d'avance) mais simplement que le retour d'erreur soit clair et informatif, plutôt que de risquer un plantage ou un comportement erroné, ce qui est possible en C.