Strings in C

Bob Ammerman [RAMMERMAN at PRODIGY.NET] of RAm Systems says:

char string[10];        // reserves a 10 character area of memory. 'string' is the address
                                 // (ptr) of the first of those.

char *sptr;                // reserved memory for a _pointer_ to one or more characters

sptr = "Hello";         // allocates 6 characters of memory to hold hello and a null and
                                // puts a pointer to those six characters in sptr

string = "Hello";     // illegal because you can't change the value of 'string' which is a pointer
                               // to those 10 reserved characters.

string[0] = 'H';        // valid: stores H at the first character pointed to by string

*string = 'H';          // valid: does the same thing

strcpy(string,"Hello");    // valid: calls a routine to copy characters from the "Hello
// memory locations pointed to by 'string'

See also: