Так вот таким способом как ты сделал - вышло UB, но забавно то что оно выдало путь.
В этом и проблема С++... десять тыщщ сущностей и десять тыщщ способов друг на друга странным образом влиять: прямо, косвенно, прямокосвенно, косвеннопрямо, косвеннокосвенно прямо погоняя косвенностью прямоту и ещё десять тыщщ комбинаций прямоты, косвенности и null.