void processFrame( unsigned char * uFrame )
/* copy it to several variables here */
memcpy( &myvar, &uFrame, 12 );
The above code will save the 12 bytes in a myvar variable. Suppose you have a huge list of bytes, instead of copying each one of them to variables, simply declare a struct to store everything.
unsigned char a;
unsigned char b;
/* and it may go further*/
Next, just point to the first address of the structure and sum up the total of bytes:
memcpy( &myStructReal, &fFrame, totalofbytes);
Ok, you will have to be sure of how many bytes will come inside the data frame, but generally you know it. It is a major ellegant and simpler solution. As, C treats structures as a series of data addresses, it will fit your huge array of bytes into a struct, piece of cake right?