>I think I could reduce my pointer headaches if only I could understand pointers better.
If you're having trouble wrapping your head around pointers, chances are good that you're thinking too hard. Beginners tend to overcomplicate the concept of pointers into some massively difficult thing.
>Somewhere in memory I've declared a character array (not an array of individual
>characters, but an array of variable length strings made up of characters)
What you've declared is an array of pointers to char.
>I want to point to a given element of that array, i.e., to one of those strings, name[0]
>through name[4], and then extract that character string and place it in a character string
>variable.
There's no magic involved. name[0] will give you a pointer to the first character of "ANGIE", name[1] will give you a pointer to the first character of "BEVERLY", and so on. To copy those strings into an array of char, you have to loop over the characters and copy them individually[1]:
for ( i = 0; name[name_int][i] != '\0'; i++ )
name_sel[i] = name[name_int][i];
name_sel[i] = '\0';
name[name_int] is the string, which can be indexed just like an array. This gives you the syntax of name[name_int][i].
[1] The strcpy function in <cstring> does this.