So what's the difference between these two functions:
void SendMsg(char [ ] myMsg)
void SendMsg(char * myMsg)
None.
Inside SendMsg you don't know the size of myMsg, just the strlen.
And you can use both the same way: e.g.
myMsg[i]
*(myMsg+i)
are identical and valid in both cases