Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

C pointer syntax

Name: Anonymous 2007-11-14 12:42

If I declare an array of arrays like this:

const char** p0 = { "##  ", "##  ", "    ", "    " };

I get these warnings:
type_d.h:13: warning: initialization from incompatible pointer type
type_d.h:13: warning: excess elements in scalar initializer
type_d.h:13: warning: (near initialization for ‘p0’)
type_d.h:13: warning: excess elements in scalar initializer
type_d.h:13: warning: (near initialization for ‘p0’)
type_d.h:13: warning: excess elements in scalar initializer
type_d.h:13: warning: (near initialization for ‘p0’)

but if I alter the syntax to

const char* p0[] = { "##  ", "##  ", "    ", "    " };

the warnings are all gone. what's exactly the difference between using * [] and ** ? I really thought they were just the same, just like * and [] or ** and [][].

If I did it like p0[][] = { ... would it be different at all?

Name: Anonymous 2007-11-18 13:46

incorrect, `&array[0]' equals `array' only in value context.
What do you mean by 'value context'?

Also, neither `&array[0]' or `array' equal `&array'.
Proof?

however certain compilers seem to like *(array+x) more than array[x].
And?

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List