part 2 (Read comment)

newTimer will still not work;
variable static to newTimer called newTimer will be freed from memory
when function returns.
Global array timerSetM and timerSet will contain pointers to NULL.

Also: arrays are immutable in c, once the size has been defined it can
not be changed. Only dynamic structures can have variable size.

All other functions that work with timers should behave correctly.

If you do not know what the -> operator does look it up. You will need
to know this.