How can I return a 12 byte from a function?

econjack:
because I didn't realize that an array length n is universally known to be 12. If you want to use a one byte type, why not define the array as a byte data type. Very confusing to me...

Because byte is not standard C. char is the only standard C known-by-compiler one byte datatype. uint8_t is defined in stdint.h and byte is a nonportable arduinoism (although one I do like)

Arduino.h:

typedef uint8_t byte;

stdint.h:

typedef unsigned char uint8_t;

The real problem, as I see it, it that WizenedEE's code is unnecessarily complicated. Reference variables were invented for just the purpose that OP wanted. Wrapping an array in a struct just so that a function can return a single address is useless overhead. Use a reference variable and pass the array address to the function.

I understand and often use passing by reference but I don't really like it. It goes against the ideas of functional programming (passing by reference means there's side effects). It's also not great because defining a variable takes two lines: one to declare it and allocate space and another to call a function to fill it up with nice data. Of course, those are minor issues that people generally ignore. I was simply pointing out an alternative. Furthermore, the OP specifically asked for how to "return" 12 bytes. Of course, one could assume that the OP doesn't know what he/she needs which may be true, but it's hardly considered good form to berate someone for giving a solution to the literal question posted.

I misunderstood what you were trying to do.

I assumed it was assumed that people posting replies were trying to help the OP by posting solutions to their problems.

Maybe this is a suggestion:

pointertest.h: No such file or directory