I\'m a little bit confused about something. I was under the impression that the correct way of reading a C string with scanf() went along the lines of
(
I think that this below is accurate and it may help. Feel free to correct it if you find any errors. I'm new at C.
char str[]
including termination null character '\0' &str, &str[0] and str, all three represent the same location in memory which is address of the first element of the array str
char *strPtr = &str[0]; //declaration and initialization
alternatively, you can split this in two:
char *strPtr; strPtr = &str[0];
strPtr is a pointer to a charstrPtr points at array strstrPtr is a variable with its own address in memorystrPtr is a variable that stores value of address &str[0]strPtr own address in memory is different from the memory address that it stores (address of array in memory a.k.a &str[0])&strPtr represents the address of strPtr itselfI think that you could declare a pointer to a pointer as:
char **vPtr = &strPtr;
declares and initializes with address of strPtr pointer
Alternatively you could split in two:
char **vPtr;
*vPtr = &strPtr
*vPtr points at strPtr pointer*vPtr is a variable with its own address in memory*vPtr is a variable that stores value of address &strPtrstr++, str address is a const, but
you can do strPtr++