By the way, one of the common mistakes of new coders (and an extremely nasty and subtle mistake since it will go wrong *silently*) is to inadvertently make the tables in build.c/const.c/other places go out of synch with the enumeration in mud.h. Although this is perfectly legal code and the compiler will happily compile it and the MUD might happily use it without crashing, what it does is it silently permutes which entries really do what. Especially nasty if the problem spreads into pfiles/area files/etc. before you detect it.
It can be, but if you look in at ROM, this particular structure isn't accessed via index numbers, it's purely accessed through lookup functions, and is then terminated by a null entry at the end. It prevents such mishaps. Though, there is the odd table in ROM that does use this type of indexing.