Subject: Re: iconv(3) prototype
To: None <tech-userlevel@NetBSD.org>
From: Alan Barrett <apb@cequrux.com>
List: tech-userlevel
Date: 07/28/2004 16:48:48
On Wed, 28 Jul 2004, Andrew Brown wrote:
> if i understand this properly (seebs?), it's like this:
> 
>    "const char **" is a pointer to a constant pointer to a character.
>    "char * const*" is a pointer to a pointer to a constant character.
>    the former is in the prototype.  the latter is the type end up with
>    when you take the address of x, where x is a "const char *".

You have that almost exactly backwards.  Perhaps you should use cdecl?

cdecl> explain const char ** x;
declare x as pointer to pointer to const char
cdecl> explain char * const * x;
declare x as pointer to const pointer to char
cdecl> explain char ** const x;
declare x as const pointer to pointer to char

--apb (Alan Barrett)