Now it's gonna be interessting ^^ I was wondering why I couldn't find any code using add_struct in your new itemsystem. That's why I asked the saving-question.

Saving structs seems not to be a problem. You have some itemcreate-function where you malloc the struct: This could be a place for add_struct. A disadvantage is if those added items doesn't exists anymore when saving the game. To solve this you could implement an array or a motherstruct which manages the items an saves all pointers to existing ones. When the user saves the game you have to use add_struct for all these struct-pointers.
But loading structs is mystery for my as well. Don't get where the data could be after loading or meet some errors like "Couldn't load xyz.sav".