An array name is not a normal variable. The array name is resolved by the compiler at compile time as the address of the first element of the array. So the array name by itself IS a "char *".
Code:
char pszMessage[LS_MAX_ERROR_MESSAGE_LENGTH] = "";
This is an array of chars. This is correct!


Code:
char* pszMessage[LS_MAX_ERROR_MESSAGE_LENGTH] = "";
This is an array of pointers to chars, not what you want!