I have a three dimensional static const array that is acting as a lookup table. Each cell of the array can return up to 8 separate numbers (each number is the corner of a cube – a voxel to be exact). So for example, MyStaticArray[0][1][1] might return 1,2,5,7. It can return a single number or a maximum of eight numbers, like so: 1,2,3,4,5,6,7,8.
I already have the lookup table prepared (on paper), my question is what the best way to store it? Initially I was going with a static const unsigned char[][][] but that is obviously not going to work in this case as the table can return more than one number (again, from 1-8).
My next solution was to return an unsigned char array. That is, static const unsigned char* [][][]. How do I initialize this (that is, how do I initialize the static const array to return to me unsigned char arrays that are also static so that I can access them without initializing a class)? Is there a better way?
I hope I was able to explain the question properly. If not, let me know and I will try to reword it and/or provide extra info.
You could pad each element up to the maximum length with dummy elements, and go with a 4D array:
or you could use individual bits as flags, e.g.:
If you find yourself needing more than 8 possibilities, upgrade to e.g.
uint16_toruint32_t.Which method you go with depends on what you intend to do with the data.