THANKS for all the responses! I used: SongArray= Song1Array; // direct pointer assignment and it worked great. THANKS! Harold > Harold Hallikainen wrote: >> main.c:369:Error >> [1131] type mismatch in assignment > [...] >> SongArray=&Song1Array; > >>>> struct SongChord rom const Song1Array[]={ data goes here } > [...] >>>> struct SongChord rom const *SongArray; // local pointer to a >>>> song > [...] >>>> SongArray=&Song1Array; > > Song1Array is defined as an array of SongChord structs. > > The subscript operator is just a clever(?) syntactical trick to hide the > pointer arithmetic behind arrays in c. > > SongArray = & Song1Array > (pointer to a SongArray) = (address of) (pointer to 1st SongArray) > > Either of the following will work (choose the one that makes the most > sense to you): > > SongArray= Song1Array; // direct pointer assignment > SongArray= &Song1Array[0]; // address of dereferenced pointer > > You can also write the above statement like this ( the "+ 0" is to > help clarify the comparison). > > SongArray= & *(Song1Array + 0); > > HTH, > Tad Anhalt > -- > http://www.piclist.com PIC/SX FAQ & list archive > View/change your membership options at > http://mailman.mit.edu/mailman/listinfo/piclist > -- FCC Rules Updated Daily at http://www.hallikainen.com -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist