Trace one struct through newUser() and watch exactly what lands on the desk (stack frame) versus the filing cabinet (heap) — and what the caller actually gets handed back.
newUser()