/*
+---------------------------------------+
| VISUALIZACION DE 256 BYTES DE MEMORIA |
+---------------------------------------+

        Este programa visualiza 256 bytes  de memoria a partir de la
dirección de comienzo especificada (en hexadecimal).
*/

#include <stdio.h> /* printf (), scanf () */
#include <conio.h> /* getch () */

void main (void)
{
  register int i;
  unsigned char ch, *p;

  printf ("VISUALIZAR MEMORIA.\n\n");

  printf ("Dirección de comienzo (en hex): ");
  scanf ("%p%*c", &p);

  printf ("\n%p: ", p); /* imprime dirección */
  for (i = 1; i <= 256; i++)
    {
      ch = *p;
      printf ("%02x ", ch); /* visualiza en hexadecimal */
      p++;
      if (! (i % 16)) /* cada 16 bytes salta a la línea siguiente */
        {
          printf ("\n");
          if (i != 256)
            printf ("%p: ", p); /* imprime dirección */
        }
    }
  getch ();
}