Copias peculiares de arrays...

txutximetal
20 de Abril del 2006
Buenas, tengo un problema que no se como solucionar. Me gustaría saber como poder copiar grandes cantidades de datos (arrays) en otros arrays que no sean de las mismas características sin necesidad de utilizar bucles, que ocupan un gran numero de recursos del procesador.

En concreto quiero copiar desde

Color *data; // donde Color es un tipo definido de 4 bytes

a

unsigned char (*data)[3]; // donde cada color son 3 bytes

Se trata de copias de imágenes, que obviamente ocupan bastante memoria, y el uso de bucles para hacer el traspaso es muy costoso.
Entonces quisiera saber como hacer para hacer esta copia descartando los 8 bits de mayor peso de Color... si los tipos tuviesen el mismo tamaño podría utilizar memcpy(void*,void*,t_size), pero como no es así estoy perdido.

Gracias de antemano, un saludo!