Das sieht nicht so aus, als ob es funktionieren sollte, aber wenn ich alles ausgeben lasse, sieht es richtig aus.
Willkommen in der Welt von Undefined Behavior. Wenn Sie dies tun, kann alles Mögliche passieren. Ihr Programm kann abstürzen, Ihr Computer kann abstürzen, Ihr Computer kann explodieren, Dämonen können aus der Nase fliegen .
Und das Schlimmste ist, dass Ihr Programm gut läuft und unauffällig aussieht, als würde es korrekt arbeiten, bis es eines Tages anfängt, Müll auszuspucken, weil es irgendwo sensible Daten überschreibt, weil irgendwo jemand ein Zeichen zu wenig für seine Arrays zugewiesen hat, und jetzt haben Sie den Heap beschädigt und bekommen einen Segfault an einem Punkt, der eine Million Meilen entfernt ist, oder noch schlimmer, Ihr Programm tuckert fröhlich mit einem beschädigten Heap weiter und Ihre Funktionen arbeiten mit beschädigten Kreditkartennummern und Sie bekommen großen Ärger.
Auch wenn es so aussieht, als ob es funktioniert, tut es das nicht. Das ist Undefined Behavior. Vermeiden Sie es, denn Sie können nie sicher sein, was es tun wird, und selbst wenn das, was es tut, wenn Sie es ausprobieren, in Ordnung ist, kann es auf einer anderen Plattform nicht in Ordnung sein.