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