(Pre-existing, in all the functions you replaced) Technically, this initializer is doing a memset(,0,) to the whole array (an incomplete initializer for an aggregate (struct, union or array) fills the rest of the aggregate the way a static variable would be initialized, which is with NULL for all pointer members and 0 for everything else).  This is wasteful.  Better to skip the initializer and do the thing I'm sure you expected this initializer to do, which is `STATIC#dir[0] = '\0';` before the function call; or have the helper function start by setting `dir[0] = '\0';`.