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
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