Don't put definitions in header files, then you will have those definition in all translation units that include the header file.
Instead have only a declaration in the header file:
extern char *names[][2];
And then put the definition in one source file.
Also, you might want to have include guards in your header file, to protect it from being included twice in a single source file.