[C con Clase] como crear cadena de bytes?

J HU judowold en hotmail.com
Vie Mar 9 10:10:19 CET 2007


Hola gente!

Al igual es una pregunta un tanto tonta, pero a ver si alguien puede echarme 
una mano.

El caso es que quiero concatenar en un variable del tipo "unsigned char*" 
varios bytes.
Por ejemplo algo como esto:

unsigned char* buf;
int i=0,j=1;
char* str="Cadena";

asprintf((char*) buf,"%d%d%s",i,j,str);

Con esto lo aue quiero es crear una cadena de bytes que luego pueda enviar 
por un socket, pero mi problema esta en que no me crea la cadena de bytes 
corretamente ya que en el buffer me pone el valor ascii de los numeros que 
contiene i y j y no el valor en bytes, es decir, que en lugar de poner "00 
00 00 01", me escribe "31", en lugar de 4 bytes, pone 1 byte.

Entonces la otra manera que he visto de hacerlo es usando la funcion 
"memcpy", pero me resulta un poco mas "costoso" poraue tengo q insertar uno 
a uno. Ejemplo:

buf = (unsigned char*) malloc(4+4+6);
memcpy(buf,i,4);
memcpy(buf+4,j,4);
memcpy(buf+8,str,6);

Assi si me escribe correctamente los bytes, pero resulta algo mas "complejo" 
de escribirlo.

Entonces, alguien podria decirme si hay alguna manera de hacerlo mas simple?

Tambien he probado de usar un stringstream y el resultado es igual que con 
el asprintf.

Gracias por vuestra ayuda!

Un saludo

Javi

_________________________________________________________________
Horóscopo, tarot, numerología... Escucha lo que te dicen los astros. 
http://astrocentro.msn.es/





Más información sobre la lista de distribución Cconclase