Please bear in mind I have no experience in HT-PIC, the following comes from extensive use of several K&R and ansi C implementations > vector[counter], In C an array name (in this case vector) is a pointer to the bottom of the array, ie vector[0]== *vector Is true > MyStruct vector[VECTOR_SIZE] at vector_address; > Vector_adress + 8*counter = value; (again ansi C) Pointer arithmetic dictates that adding 1 to a pointer actually increments the pointer to the _next_ element of that data type. A code example would be... Char *pc; Int *pi; pi=pc; pi++; pc++ pi!=pc at this point as an int is (usually) 4 bytes and a char is (usually) 1 byte. So with that in mind you _could_ do the following MyStruct vector[VECTOR_SIZE] MyStruct *vector_address; *(Vector_adress + counter) = value; Whether this will help the code size I have no idea, what it does do is reduce the readability... -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.