Thank you for your quick reply. I run into another incompatible type:
Code:
#define Element_A_Offset 0
#define Element_B_Offset 1
#define Element_C_Offset 2
#define Element_D_Offset 3
typedef struct{
unsigned char a;
unsigned char b;
unsigned char c;
unsigned char d;
} TEST;
TEST Array[2];
//----------------------
// Get X element of an Y array index
//----------------------
unsigned char Get_Element(unsigned char Array_Index, unsigned char Element_X_Offset)
{
TEST *pointer;
unsigned char IndexOffset, Val;
pointer = &Array[0]; // get address of array
IndexOffset = Array_Index << 2; // 4 byte each
Val = *(pointer + IndexOffset + Element_X_Offset); // get element X of Array_Index
*(pointer + IndexOffset + Element_X_Offset) = 0xAA; // set element X of Array_Index
return Val;
}
//------------
void main (void)
{
unsigned char Value;
Value = Get_Element(1, Element_B_Offset);
}
Thank you very much in advance!
James