On Tuesday 26 February 2002 22:17, you wrote: > How is this the case? STRING ** and Parrot_String * are equivalent. > You can use & on both a STRING * and a Parrot_String to get a STRING** > (a.k.a. a Parrot_String *). I don't see where the problem is.
Ah, except that you had a different typedef for both the type, and a pointer to that type. typedef FOO Parrot_Foo; typedef FOO * Parrot_Foo_ptr; /* or typedef Parrot_Foo * Parrot_Foo_ptr; */ void func () { FOO gork; bar(&gork); } void bar ( /* What goes here? */ ) { } I'd argue for 'Parrot_Foo *'. Programmers know that when you pass in an address, expect a pointer on the other end. But with your typedef for the pointer thing, you're saying it should be 'Parrot_Foo_ptr' - do you expect the users to a) look that up?, and b) actually do that? -- Bryan C. Warnock [EMAIL PROTECTED]