Let us say we have a array of pointers:
char *ptr[30];
Now this works fine, and doesn\'t seems to do anything unexpected! I can input names easi
When you define a pointer like:
char *ptr = 0; // NULL pointer: dereferencing it will crash
puts(ptr); // crash
You merely create a link to a place in memory:
ptr = "string"; // dereferencing it will show the string
puts(ptr); // displaying "string"
So having an array of pointers merely creates a list of references to other variables.
To reference a place in memory, you then have to assign variables to your pointers, or allocate memory for each pointer.