title: Prototype for C function returning array of strings
body: <p>So, I am trying to create a nicely readable <code>C</code> function prototype, which returns me an array of strings (ie <code>char*</code>). The closest I could came up with is something like:</p>
  
  <pre><code>const char * const *entrypoints()
  {
      static const char* arrays[] = {"test123", "test2"};
      return arrays;
  }
  </code></pre>
  
  <p>however, I don't like the two <code>*</code>s in the declaration, it looks scary :) ... But I did not find a way to emphasize the fact that the function is returning an array of strings ... Using the [] in the function declaration leads to funny compile errors (such as 'entrypoints' declared as function returning an array for <code>const char* (entrypoints() [])</code> or expected unqualified-id before '[' token for <code>const char[]* entrypoints()</code> or <code>const char*[] entrypoints()</code> ... yes, the compiler is right in both cases), and google seems to have no answer for this... so here I am.</p>
  
  <p>Is there a way to declare a function prototype <em>in a nicely readable manner</em> (this will go in a public API) that will return an array of C strings. Not C++. <strong>C</strong>. Plain old C. If not, I will have to stick to the two star approach ... ie. <code>char **</code>. Not that this is something (obscurely) awkward, but I would like to emphasize that the function returns an array of strings. C like strings :)</p>