It makes no sense for a structure to contain a member that is an instance of the outer struct. In addition to requiring that you declare an incomplete type, it would be infinite and would never have enough bytes because each instance you add will also need an instance.
Using a pointer is no problem; however, and this approach is often use to create linked lists, for example. The pointer points to the next instance in a chain.