If it was in the cards for you, you could easily deal with telemetry.
Good answer. That will work.
Additionally, I have been busy. The problem with my code was one of precedence. Here are, hopefully, the core lines that show how the procedure can be declared and defined.
const wchar_t prefix[ SIZE_OF ] = L"S01_";
void Set_Pointer( wchar_t (*new_pointer)[COUNT_OF][SIZE_OF] )
foo_names = new_pointer;
swprintf_s( (*foo_names),SIZE_OF, L"%s%s", prefix, c0 );
Character * is a prefix and the postfix  is bound first. The parenthesis causes the * to be bound to the name before the .
Obviously, the fragment does nothing useful, but it shows what to do.
Putting it all in a structure is the easy way and I have used enough structures to have thought of that much earlier. Now I have both methods.
I really should print out a list of all the precedencies and put them on the wall next to me. With large type so I can read it without getting up.
There is a third way, using a friend class. Then it does not even need to be passed. (A tool to be used sparingly.) I tried that and failed. Time to hit the books and search engine and see what I did wrong there.
Thank you for your time and thank you for your patience.
Thank you for your time
If you work with telemetry, please check this bulletin board: www.irigbb.com