Why can't I do this?

P. T. Withington ptw at vaxine.UUCP
Tue Jan 17 03:01:48 AEST 1984

Well.  I got lots of replies to my query that told me I couldn't do what I
wanted to do because I was doing something illegal.  Well, I knew that.  The
compiler told me so.  I guess what I really should have asked is:  "How can I
do this"?  It seemed to me that there ought to be a way to initialize an array
of pointers to things other than char.  Two solutions were suggested:

1) Don't do it that way; declare it as a ?*n array (either implicity or
explicitly).  Which wastes the space I was trying to conserve.  (? is really
very large in my case and n ranges between 3 and 7.)

2) Declare a lot of useless 1-dim arrays followed by a declaration of the array
of pointers.  Which is more in the spirit of things, but since ? is so big
(see above) leads to a lot of unnecessary clutter and doesn't sound like C to

I thought that maybe:

int *bar[] = {&{0, 1, 2, ...

would do, but my compiler doesn't like that either.  Of course, my ints are all
very small so I *could* say:

char *bar[] = {"\0\1\2", ...


Maybe it's just not important to worry about that many bytes any more.  Maybe
its something that just isn't done enough to create a hulluballoo over.


More information about the Comp.lang.c mailing list