Back in the 1980s (when this code had its origins), NULL pointers weren't guaranteed to be all zeroes; having a static, otherwise unused structure (which was guaranteed to be initialized correctly) for initialization purposes was cheap portability insurance. (The insurance was taken out consistently, both for uniformity and to avoid problems if a pointer was added to a structure later.) Given updates to the C standard and waning interest in supporting old systems, this insurance may well no longer be needed.
Meanwhile, changing...
memset(sp->ttis, 0, sizeof(sp->ttis));
...to...
memset(sp->ttis, 0, sizeof sp->ttis);
...saves a character and is a reminder (to me, at least) that sizeof isn't a function.
@dashdashado