elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda sobre Dword a char[]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre Dword a char[]  (Leído 1,826 veces)
Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Duda sobre Dword a char[]
« en: 22 Junio 2016, 02:57 am »

Hola a todos.

Tengo una duda sobre el siguiente codigo que tengo:
Código
  1. HANDLE hStdoutConsole, hStdinConsole;
  2. DWORD written, value = 263977 , read;
  3. char message[7] = { 0 }, messageDos[10] = {0};
  4.  
  5. AllocConsole();
  6. hStdoutConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  7.  
  8. if (hStdoutConsole == INVALID_HANDLE_VALUE) {
  9. MessageBox(NULL, L"stdout no disponible", L"Error", MB_OK);
  10. return 1;
  11. }
  12.  
  13. hStdinConsole = GetStdHandle(STD_INPUT_HANDLE);
  14. if (hStdinConsole == INVALID_HANDLE_VALUE) {
  15. MessageBox(NULL, L"stdin no disponible", L"Error", MB_OK);
  16. }
  17.  
  18. sprintf_s(message, sizeof(message), "%d", value);
  19. WriteConsoleA(hStdoutConsole, message, strlen(message), &written, NULL);
  20. ReadConsoleA(hStdinConsole, messageDos, sizeof(messageDos), &read, NULL);
  21. return 0;
  22.  

Mi duda es cuando convierto DWORD a char con sprintf_s, así como esta el codigo ahorita si compila bien pero si modifico el tamaño del array message por uno menor a 7 el programa causa un error en tiempo de ejecucion y se cierra.
Entonces queria que me ayudaran aclarar la duda del poque se necesitan mas de 6 bytes si se supone que con 4 deberia de basta ya que DWORD vale 4 bytes, o no es así?

Espero que me puedan ayudar.
Saludos.
Drewermerc.


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Duda sobre Dword a char[]
« Respuesta #1 en: 22 Junio 2016, 03:31 am »

Hola estas convirtiendo el entero 263977 a cadena.

Código:
"263977"

No te olvides que tambien esta el caracter nulo

Código:
"263977\0"

Necesita 7 posiciones

Saludos


En línea

Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: Duda sobre Dword a char[]
« Respuesta #2 en: 22 Junio 2016, 16:09 pm »

Hola AlbertoBSD.

Gracias por responder.
No si me acordaba de caracter nulo, lo que no recorda es que como estoy manejando char y e DWORD tengo 6 numeros entonces eso por eso necesito 7 espacion ya que cada numero ocupa un char + el caracter nulo.
Gracias por recordarme eso AlbertoBSD, es que apenas estoy volviendo a c y no me acuerdo de algunas cosas  :D.

Saludos,
Drewermerc.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines