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)
| | |-+  Long long to char
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Long long to char  (Leído 2,790 veces)
Xedrox

Desconectado Desconectado

Mensajes: 274



Ver Perfil
Long long to char
« en: 4 Agosto 2013, 23:26 pm »

Buenas gente, les hago una consulta, tengo una clase con la siguiente estructura:

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!




En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Long long to char
« Respuesta #1 en: 5 Agosto 2013, 02:32 am »

Luce como que es el alineamiento, que compilador utilizas?


En línea

Xedrox

Desconectado Desconectado

Mensajes: 274



Ver Perfil
Re: Long long to char
« Respuesta #2 en: 5 Agosto 2013, 02:54 am »

Hola, uso c99.

Saludos!

P.D. Acabo de encontrar la forma de solucinar el problema, queria evitarlo pero estoy cargando el array byte por byte, por lo menos zafo con esta solucion.
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Long long to char
« Respuesta #3 en: 5 Agosto 2013, 10:15 am »

Sobrecarga el operador de conversión:

Código
  1. class Dummy
  2. {
  3.     public:
  4.          char mensaje[4];
  5.          long long valor;
  6.          char mensaje2[4];
  7.  
  8.          operator char*()
  9.         {
  10.             char Texto[8];
  11.  
  12.             for (short i = 0; i < 4;i++)
  13.             {
  14.                  Texto[i] = mensaje[i];
  15.                  Texto[i+4] = mensaje2[i];
  16.             }
  17.  
  18.             return Texto;
  19.         }
  20.  
  21. //...
  22.  
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Function ConnectSock() As Long
Programación Visual Basic
saliaz 0 1,144 Último mensaje 13 Julio 2008, 18:00 pm
por saliaz
convertir long a rgb
Programación Visual Basic
<[(x)]> 3 5,872 Último mensaje 5 Marzo 2009, 07:56 am
por hechelion
de byte a long
Programación Visual Basic
claus86 3 3,227 Último mensaje 7 Marzo 2010, 18:27 pm
por LeandroA
Arrays de chars to long long
Programación C/C++
Xedrox 0 1,568 Último mensaje 24 Diciembre 2012, 01:03 am
por Xedrox
problemas con long long int
Programación C/C++
m@o_614 7 3,927 Último mensaje 13 Marzo 2014, 17:59 pm
por Yoel Alejandro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines