SoloCodigo

Programación General => C/C++ => Visual C++ => Mensaje iniciado por: martincod en Martes 5 de Mayo de 2009, 01:06

Título: Asignacion de memoria
Publicado por: martincod en Martes 5 de Mayo de 2009, 01:06
Tengo el siguiente enunciado:
Escribir un programa en lenguaje C, llamado memoria.c, que permita ingresar un valor entero decimal sin signo, y como resultado nos muestre la cantidad de bytes que ocupa el valor ingresado en memoria, la dirección de memoria que le fue asignada por el S.O. en formato hexadecimal, y byte por byte el contenido de cada una de las posiciones de memoria que pertenecen al valor ingresado. Presentar el código fuente correctamente documentado, y justificar los datos obtenidos como resultado.
El Codiogo q yo puse es el siguiente pero no se q mas me fala:
# include <stdio.h>
int main (void)
{
unsigned int num;
int cant_vacios;
printf ("Ingrese un entero:");
scanf ("%p", &num);
printf ("La direccion de memoria es asignada por el SO es:%pn", num);
sizeof (unsigned int) - cant_vacios);
}
si alguien me puede dar una mano se lo agradeceria mucho.
Título: Re: Asignacion de memoria
Publicado por: m0skit0 en Martes 5 de Mayo de 2009, 09:32
Primero, usa las etiquetas de código y leete las normas del foro.

Cita de: "martincod"
la dirección de memoria que le fue asignada por el S.O. en formato hexadecimal,
Código: C
  1. printf ("La direccion de memoria asignada por el SO es: %xn", &num);
  2.  

Cita de: "martincod"
nos muestre la cantidad de bytes que ocupa el valor ingresado en memoria
Código: C
  1. printf ("La cantidad de bytes que ocupa en memoria es : %dn", sizeof(num));
  2.  

Cita de: "martincod"
byte por byte el contenido de cada una de las posiciones de memoria que pertenecen al valor ingresado
Este que es un poco más complicado (pero no mucho :)) te lo dejo que lo pienses por ti mismo. Es evidente que vas a tener que usar un puntero que apunte a un solo byte. Para ello puedes usar char * puntero (puntero a byte), por ejemplo, o para que lo veas mejor, char puntero[].

Ánimo