Do chngetk etc. allocate a new array on each k-cycle?

In order not to write a whole bunch of chngets to individual variables, If I write something like:

kargs[] chngetk gSiXpnames

Will that ‘spam’ allocate a new array on each k-cycle, or will the same array be reused? In Csound 6.

I don’t alas know how to profile anything in Csound relating to mem allocs.

Looking at

 { "chngetk.k",    S(CHNGET),_CR,           3,      "k[]",            "S[]",
    (SUBR) chnget_array_opcode_init, (SUBR) notinit_opcode_stub, NULL },

it seems it does all the work at i-time? I don’t understand how that’s even possible for chngetk. Ah, I see that init mutates the entry table!

    if(channelType == (CSOUND_CONTROL_CHANNEL | CSOUND_INPUT_CHANNEL))
        p->h.opadr = (SUBR) chnget_array_opcode_perf_k;

And in the code of the latter it does no allocations, so it reuses the same destination array.