What does Z["ack"] = 5 mean?

The Beach Bum jfh at rpp386.Dallas.TX.US
Thu Oct 6 14:27:31 AEST 1988


In article <14999 at agate.BERKELEY.EDU> laba-3aw at web.berkeley.edu (Sam Shen) writes:
>Exactly what does this mean:
>
>main()
>{
>	char Z;
>
>	Z["ack!"] = 5;
>}

The same as

	char Z;

	"ack!"[Z] = 5;

>This doesn't look right to me.  However, cc doesn't complain
>at all about it.  Lint says:
>
>blah.c(5): warning: Z may be used before set

Right.  It should be

	char Z = 0;

to give Z a reasonable value.

That would produce code to change the 'a' in "ack!" to a \005, which is ^E.

>Worse yet, the executable produced by gcc core dumps.  Oh, by the way, this
>is all on a Sun-3/50.

And well it should.
-- 
John F. Haugh II (jfh at rpp386.Dallas.TX.US)                   HASA, "S" Division

      "Why waste negative entropy on comments, when you could use the same
                   entropy to create bugs instead?" -- Steve Elias



More information about the Comp.lang.c mailing list