SoloCodigo
Programación General => C/C++ => Visual C++ => Mensaje iniciado 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.
-
Primero, usa las etiquetas de código y leete las normas del foro.
la dirección de memoria que le fue asignada por el S.O. en formato hexadecimal,
printf ("La direccion de memoria asignada por el SO es: %xn", &num
);
nos muestre la cantidad de bytes que ocupa el valor ingresado en memoria
printf ("La cantidad de bytes que ocupa en memoria es : %dn", sizeof(num
));
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