Sorry, mi ero perso un pezzo di condizione per strada... ora è corretto.
Amaro C++, il gusto pieno dell'undefined behavior.
Regole del Forum