«массив» - это адрес массива в памяти, но это не символ **. Пока вы можете разыграть его, приложение будет зависать, если вы попытаетесь
printf("%s", pointer[1]);
потому что в вашем случае это, вероятно, то же самое, что и
printf("%s", (char *)(0x00000031));
, так как указатель [1] означает «второй 4-байтовый указатель (при условии x86), начиная с« массива »».
Указатель [0] МОЖЕТ не аварийно завершить работу, но не будет отображать слово «word1» по той же причине.
Вы, вероятно, хотите (это трудно запомнить, поэтому я должен был проверить онлайн, надеюсь, это правильно):
char (*pointer)[10] = array;
Указатель на массив из 10 символов. И если вы используете указатель [1], это теперь означает «второй блок из 10 символов, начиная с« массива »».