Buenas gente, tengo un problema que me esta rompiendo la cabeza, el tema es asi. Tengo un objeto dummy como este:
class Dummy
{
public:
char *campo1;
char *campo2;
int campo3;
long long campo4;
Dummy()
{
char *aux=(char*)malloc(5);
char *aux1=(char*)malloc(5);
strcpy(aux,"hola");
strcpy(aux1,"xedr");
campo1=aux;
campo2=aux1;
campo3=55;
campo4=0;
}
~Dummy(){}
void imprimir()
{
printf("CAMPO 1: %s\n",campo1);
printf("CAMPO 2: %s\n",campo2);
printf("CAMPO 3: %d\n",campo3);
printf("CAMPO 4: %d\n",campo4);
}
};
Lo que tengo que hacer en el main es guardar ese objeto en un char*. Debo considerar que en el char se guardan tipos como int y long long que deben ser guardados con los binarios, y no en formato ascci. Por ejemplo, como este objeto "p" va terminar con un "long long" de 8 bytes en 0, las ultimas 8 posiciones del char* espero que tengan un "NULL" guardado en esa posicion. Lo que hago en el main es esto, pero al imprimir el char* no salen los caracteres que espero, por lo menos la cadena deberia comenzar con "holaxedr....<binarios>.."
int main()
{
Dummy *p=new Dummy();
printf("El objeto pesa: %d\n",sizeof(*p)); //24
char *a=(char*) malloc(24);
memcpy(a,p,24);
printf("%s",a);
system("PAUSE");
return 0;
}
La salida del programa sobre el segunda printf es:
Como se vera, nada que ver a lo esperado.
Espero haberme explicado bien y que puedan ayudarme.
Muchas Gracias de antemano.
Saludos!