I think you might benefit from one more comment:
WizenedEE:
sendMsg needs to take a const char* argument.
Correct. You have to define sendMsg to take a const char*, to signal to a user and the compiler that sendMsg won't change the text.
When you did that, you are free to supply const char and variable ones:
sendMsg("Hello "); // to allow this, we define sendMsg( const char *)
char msg[20] = "variable text";
msg[0] = 'V';
sendMsg(msg); // this is fine, too