Pointers vs. arrays: another dumb question...

Brandon Allbery allbery at ncoast.UUCP
Sun Jun 22 02:52:47 AEST 1986


Expires:

Okay, I've another dumb question for everyone:

In an application I wrote, I use pointers to arrays.  Now:

If the array is malloc'ed, the correct cast is:

		(struct foo (*)[])

and you assign the ``pointer to the array'' to a variable.  But, if it's in
initialized data, you can't do it that way:  you can't take a ``pointer to an
array''.  So the cast is:

		(struct foo *)

BUT:  the arrangement in memory is identical!  It should be even on tagged
architectures, etc.; in fact, (struct foo *) is always wrong, and might
conceivably cause problems on a tagged architecture if you're really pointing
to an array.

So:  why isn't the correct type of an array name (struct foo (*)[])?  That
would make much more clear the meaning of the pointer, and would avoid many of
the pointer-vs.-array confusions.

--Brandon
-- 
ihnp4!sun!cwruecmp!ncoast!allbery ncoast!allbery at Case.CSNET ncoast!tdi2!brandon
(ncoast!tdi2!root for business) 6615 Center St. #A1-105, Mentor, OH 44060-4101
Phone: +01 216 974 9210      CIS 74106,1032      MCI MAIL BALLBERY (part-time)



More information about the Comp.lang.c mailing list