Массив указателей - это массив адресов.
Массив указателей объявляется также, как и прочие массивы:
тип *идентификатор[целочисленное выражение]
Пример 1
char buffer[30001];
/* Текстовый буфер, заканчивающийся '\0'*/
char *line_num[2001];
/*Максимальное число строк - 2000*/
void number_lines(void)
  {
  int i;
  char *p;
  line_num[0]=buffer;
  for(p=buffer, i=1; *p != '\0'; p++)
     if(*p == '\n')
        if(*(p+1) != '\0')
           line_num[i++] = p+1;
  line_num[i] = NULL;
  }
Предположим, что массив buffer уже заполнен текстом. Функция number_lines() занесет начальные адреса каждой из находящихся в буфере строк в массив символьных указателей line_num, то есть line_num[0] будет указывать на первую строку, line_num[1] будет указывать на вторую строку и т.д. Список указателей на строки завершается нулем.
Инициализация массива указателей при объявлении
Пример 2
/*пример сканера для идентификации команд */
#include <stdio.h>
#include <string.h>
int is_keyword(char *);
char *keyword[] = {
                   "append",
                   "find",
                   "list",
                   "remove",
                   "replace",
                   "substitute",
                   (char *)NULL
                   };
/*возвращает индекс команды, иначе -1*/
int is_keyword(char *)
  {
  int i;
  for (i=0; keyword[i] != NULL; i++)
     if(strcmp(str, keyword[i]) == 0)
        return i;
  return -1;
  }
Строковые константы располагаются в области данных. Их начальные адреса будут использоваться при инициалицации массива указателей. Массив указателей использует меньше памяти, чем требовалось бы для двумерного массива символов. При использовании двумерного массива символов пришлось бы найти самое длинное ключевое слово и указать его длину, увеличенную на 1 за счет символа - признака конца строки, в качестве второй размерности массива. Например, имеется 30 ключевых слов и самое длинное содержит 7 символов. Тогда двумерный массив должен быть объявлен следующим образом:
char keyword[30][8];
В итоге появилось бы много неиспользуемых байтов, так как многие ключевые слова содержат менее 7 символов .