Die Funktion test() gibt einen Zeiger auf die lokale Variable person, die innerhalb der Funktion deklariert wurde, zurück. Sobald die Funktion test() beendet ist, wird die lokale Variable person ungültig,
Stattdessen solltest du die Struktur selbst zurückgeben, keinen Zeiger.
struct Person person = test();