structs in C are passed by value not reference