Copiar elemento de estructura con memcpy
Publicado por Manu (1 intervención) el 27/10/2008 13:55:34
HOla! Estoy utilizando una librería de software libre para trabajar con sensores de huellas.
Una de las funciones que utilizo me devuelve la siguiente estructura:
//struct fp_img {
// int width;
// int height;
// size_t length;
// uint16_t flags;
// struct fp_minutiae *minutiae;
// unsigned char *binarized;
// unsigned char data[0];
//};
struct fp_img * image = NULL;
Pero no puedo acceder a sus campos de la forma image->data pues la estructura la utiliza el programa internamente y no quiero modificar los "includes" y hacer que un usuario tenga que instalarse una API modificada.
Los 4 primeros campos los obtengo sin problemas a base de memcpy's (utilizando sizeof() sin problemas).
En el campo DATA se encuentran una serie de bytes que quiero copiar y de longitud length que conozco.. pero
no sé obtenerlos.
Se supone que el último campo es un puntero a donde está la información¿?
?¿Como la cojo?¿
unsigned char *RAW_DATA;
RAW_DATA = malloc(length);
memcpy(&RAW_DATA, ¿?¿? ,length)
NOTA: me vale algo utilizando for o algo así por supuesto..
Pensé en utilizar un **pchar.. ¿??¿!
Muchas gracias, un saludo!
Una de las funciones que utilizo me devuelve la siguiente estructura:
//struct fp_img {
// int width;
// int height;
// size_t length;
// uint16_t flags;
// struct fp_minutiae *minutiae;
// unsigned char *binarized;
// unsigned char data[0];
//};
struct fp_img * image = NULL;
Pero no puedo acceder a sus campos de la forma image->data pues la estructura la utiliza el programa internamente y no quiero modificar los "includes" y hacer que un usuario tenga que instalarse una API modificada.
Los 4 primeros campos los obtengo sin problemas a base de memcpy's (utilizando sizeof() sin problemas).
En el campo DATA se encuentran una serie de bytes que quiero copiar y de longitud length que conozco.. pero
no sé obtenerlos.
Se supone que el último campo es un puntero a donde está la información¿?
?¿Como la cojo?¿
unsigned char *RAW_DATA;
RAW_DATA = malloc(length);
memcpy(&RAW_DATA, ¿?¿? ,length)
NOTA: me vale algo utilizando for o algo así por supuesto..
Pensé en utilizar un **pchar.. ¿??¿!
Muchas gracias, un saludo!
Valora esta pregunta


0