Moral of the story: don't have struct fields that point to the struct itself. This is almost always a bad idea. Structs have value semantics,and the implicit copying around will almost certainly break anyself-referencing pointers, which leads to dangling pointers, goodfriends of memory corruption, et al. :-P
If it actually had value semantics you would not be allowed to take the address of it... :-P