Je sors un peu du sujet, quoique peut-être pas totalement en fait. Je n’ai jamais fait de C ou C++ au-delà des études (et encore, c’était du C pour microcontrôleur il y a 15 ans), et j’ai toujours été surpris par deux notions :
- Que l’on puisse saturer la mémoire à coup de
malloc
sur un système embarqué directement programmé, OK. Mais quel est l’intérêt d’autoriser ça sur un système muni d’un OS ? Pourquoi l’OS n’envoie pas chier une demande d’allocation qui tenterait d’allouer plus de mémoire que disponible ? - Quel est l’intérêt de conserver des comportements indéfinis dans les versions successives des normes ? Je peux comprendre qu’on en ait eu au début parce que ça correspondait à des cas non couverts, non prévus, impossibles sur le matériel de l’époque etc. Mais quel est l’intérêt de conserver ça dans les versions récentes des normes ? On pourrait imaginer que C et C++ disent « OK, on se met d’accord pour dire que ces cas maintenant sont standardisés au comportement X ».
Dans les deux cas j’imagine qu’il y a une bonne raison qui fait que l’on reste à ces comportements, mais elle m’échappe.
+0
-0