if you want to check i can give you the whole code
I don't want to check the whole code. Appearently something is going wrong it it, so isolate the problem to a small representative section of code and show me that so I can fix it or atleast provide advance on how to fix it or what direction to think in.
Your original problem was "meanings" getting overwritten, I've answered that with how to fix it but you reply with a seemingly completely unrelated problem.
It might be a good idea to (re-)educate yourself about linked lists. Your first problem shouldn't have been a problem in the first place as you (kind of) apply the solution on the 'outer' linked list. A linked list is nothing more than a chain of structures referencing to eachother by pointers. You can add or remove individual structs from it in an intuitive way. The chain ends when it is no longer connected to another section. (programmaticaly meaning 'next' is NULL)