elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda, serializar c*
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda, serializar c*  (Leído 2,361 veces)
ktemo

Desconectado Desconectado

Mensajes: 2


Ver Perfil
ayuda, serializar c*
« en: 14 Marzo 2012, 03:02 am »

Hola

estoy trabajando con una libreria para lectores de huella y en una de las funciones me escribe la huella leida en un objeto de este tipo:

unsigned char* fprint;

como necesito utilizarlo en python estoy haciendo los wrappers y necesito serializar esa variable
para poder guardarla o manipularla mas adelante, sin embargo todo lo que intento me produce errores de segmentacion, tengo esta funcion:

void pydp_fmd_get_data(char **fmd_data, char* data, int length)
{
*fmd_data = (char *) malloc(length);
memcpy(fmd_data, data, length);
}

length es la dimension de la variable fprint, asi es como me lo devuelve el api.

Espero puedan ayudarme.


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: ayuda, serializar c*
« Respuesta #1 en: 14 Marzo 2012, 10:07 am »

No entiendo muy bien para que hacer un copia pero:

Código
  1. memcpy(*fmd_data, data, length);


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
ktemo

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: ayuda, serializar c*
« Respuesta #2 en: 14 Marzo 2012, 16:08 pm »

hacia una copia porque lo hiba manipular despues pero queria conservar el original para otros propositos, corregi lo que me comentas pero aun asi obtenia fallos de segmentacion, ya no con memcpy sino con swig, asi que al final cambie algunas cosas y puse un estructura con __attribute__((__packed__))

al final quedo asi:

struct dp_fmd_data {
   unsigned char* data;
   unsigned int size;
} __attribute__((__packed__));

size_t dp_fmd_get_data(char *data, int length, unsigned char **ret){
   struct dp_fmd_data *buf;
   size_t buflen;
   buflen = sizeof(*buf) + length;
   buf = malloc(buflen);
   if (!buf)
      return 0;

   *ret = (unsigned char *) buf;
   buf->size = length;
   buf->data = data;
   return buflen;
}

gracias por la ayuda de todas formas :), soy newbie en C y la verdad es que me cuesta trabajar con punteros y cosas de memoria n_n
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Serializar datos en archivo xml
Java
Debci 9 8,238 Último mensaje 5 Agosto 2009, 09:40 am
por Debci
DUDA: Se puede serializar controles en VB6 ?
Programación Visual Basic
Maurice_Lupin 5 3,309 Último mensaje 4 Octubre 2011, 22:40 pm
por Maurice_Lupin
Problema Serializar/Deserializar
.NET (C#, VB.NET, ASP)
Maurice_Lupin 2 3,639 Último mensaje 23 Noviembre 2011, 16:17 pm
por Maurice_Lupin
Como serializar en c++? (dev c++)
Programación C/C++
fabian7593 3 5,344 Último mensaje 25 Septiembre 2013, 08:33 am
por eferion
Serializar objetos en XML (XmlSerialization, XDocument, XmlWriter, etc)
.NET (C#, VB.NET, ASP)
GonzaFz 3 3,228 Último mensaje 3 Marzo 2017, 22:15 pm
por GonzaFz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines