• Sábado 14 de Diciembre de 2024, 23:43

Autor Tema:  Asignacion de memoria  (Leído 1491 veces)

martincod

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Asignacion de memoria
« en: Martes 5 de Mayo de 2009, 01:06 »
0
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.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Asignacion de memoria
« Respuesta #1 en: Martes 5 de Mayo de 2009, 09:32 »
0
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