Código:
class Dummy
{
public:
char mensaje[4];
long long valor;
char mensaje2[4];
...
Las variables de ese objeto las tengo instanciadas de la siguiente manera:
Código:
mensaje: "hola"
valor: 0
mensaje2: "hola"
Cabe aclarar que los array de char no se le carga caracter nulo.
Lo que tengo que hacer es convertir este objeto en un "char*" que despues se lo paso por parametro a una clase (la cual no tengo visible el codigo) para que luego lo grabe en un archivo. Se que parece raro pero tengo que usar esa clase por limitacion de la plataforma. Prosigo, el main me queda asi:
Código:
Dummy obj;
instancarVariablesObjetos(obj);
int longObj=sizeof(Dummy); //Da 4 + 8 + 4 bytes=16, ok
char *buffer=(char*) malloc(longObj);
memcpy(buffer,&obj,longObj);
grabarEnArchivo(buffer);
Lo que esperaba es que grabe esto, considerar que long long tiene 0 setado como valor, osea todos nulos en bytes:
Código:
hola[NULL][NULL][NULL][NULL][NULL][NULL][NULL][NULL]hola
Pero me quedo asi:
Código:
hola[NULL][NULL][NULL][NULL][NULL][NULL][NULL][NULL][NULL][NULL]hola
Vease que hay dos nulos de mas, tienen idea porque puede ser?
Muchas gracias
Saludos!