What is the proper method for modifying char array?

It's called "passing by reference". You can look that up and get a clearer more detailed answer than if someone here explains it. Essentially, it is creating an "alias" for the passed identifier.

Your second question is not that clear, but when using pass by reference, you could pass any array to it with the same results. If that answers it.

BTW you shouldn't really hard code the array size 33. It's probably UniqueIDsize + 1. Plus one is for the terminating null, just my guess.