title: Traverse the string array in c
body: <pre><code>#include &lt;stdio.h&gt;
  
  int main(int argc, const char *argv[])
  {
      const char *s[] = {"a", "b", "c", NULL};
      const char **p = s;
      while (*p != NULL) {
          printf("string = %s\n", *p);
          (*p)++;
      }
      return 0;
  }
  </code></pre>
  
  <p>I want to traverse the string array and print the string util come up the NULL sentinal.
  However it generate a terminated by signal SIGSEGV (Address boundary error)message.
  Anyone can tell me why?</p>