It's a pointer to a null terminated string.
* isn't just an asterisk, it means "pointer." Pointers... well, they
point to a certain position in the memory.
One thing you might wanna do is delimit it with a \0 at the end.
Otherwise, when you come to use it, it could be adding other crap stored in the memory after that.
Example:
Imagine the user's memory being stored as a string. When you come to use that string, it will start from the beginning, and continue until a \0 is found (NULL terminating character)
It could look like this:
testwzks*2j\0
In which case, myStr will actually be "testwzks*2j"
If you add a \0 to the end of your string, it will be test\0twzks*2j\0 in the memory. Effectively, myStr will then be "test"
I don't think there are many times when this actually occurs, since (AFAIK) many compilers will add \0 to the end of it for you. It's just worth typing that extra \0 to be on the safe side.
Hope this helps

[I was kinda rambling a bit, I forgot what I was gonna say about 4 times]