passing a char array

If you are going to specify a length, why are you not specifying the same number of initializers?

I'm not sure of the original posters intention, but its worth pointing out, an initialiser is perfectly fine with fewer elements than allocated to the array.
Consider this:

A large array created globally, say of type int and 100 elements, the implementation specifies that global memory is zero initialised unless explicitly set. By initialising only the needed elements you can shorten the globals section which copies/creates initial values into global variables. This runs as your code starts, effectively only containing 'x' amount of copies rather than a partially redundant 100 copies.