(thingy->array)[0] is a STUFF, not a STUFF*.

If I remember correctly, object assignment doesn't work properly in lite-c yet, so you can't just change STUFF* to STUFF. You'd have to use memcpy. Or change the code to make thingy have an array of POINTERS to STUFFs: "STUFF* array[];"