The first step is to understand what the error is. A SIGSEGV (Segment Violation signal) is sent by the OS when your program attempts to access memory that it does not have access to. The way this happens in C is when you attempt to use a pointer that points to some memory address outside your address space.
GDB told you what line the error was on. Now you just have to figure out what part of the line created the error. > ch->in_room->track[i]->name = ch->name; /* <--- THIS LINE */

