DEC C in one of its non-ANSI modes didn't like fieldorder = test ? &array1 : &array2; It first complained that '&' applied to an array has no effect (which was typically true in pre-ANSI environments) and once those '&'s are ignored, the attempted assignment didn't match the variable's type. That code was actually more complicated that it needed to be; slightly simpler code works as intended.