Just keep in mind that everything takes up memory, including pointers. It can be handy to let a pointer (to a pointer) point to something else.
Also, the line where memory is allocated to store the actual string, is not needed.
Str= (char*) calloc(10, sizeof(char)); Str= "Hello, world";
The last line can also be written like this:
In other words: use the pointer that is stored at index 0.
Sometimes it helps to visualise things. If you search the internet for 'C char pointers explained
', you'll find some pictures that may explain things a bit more.