¿Cómo mostrará la representación de memoria de las variables C?

Escriba un programa en C para mostrar la representación en memoria de las variables de C como int, float, pointer, etc. 
Algoritmo: 
obtenga la dirección y el tamaño de la variable. Escriba la dirección en el puntero char. Ahora haga un bucle para el tamaño de la variable e imprima el valor en el puntero encasillado.

Programa:
 

c

#include <stdio.h>
typedef unsigned char *byte_pointer;
 
/*show bytes takes byte pointer as an argument
  and prints memory contents from byte_pointer
  to byte_pointer + len */
void show_bytes(byte_pointer start, int len)
{
     int i;
     for (i = 0; i < len; i++)
           printf(" %.2x", start[i]);
     printf("\n");
}
 
void show_int(int x)
{
     show_bytes((byte_pointer) &x, sizeof(int));
}
 
void show_float(float x)
{
     show_bytes((byte_pointer) &x, sizeof(float));
}
 
void show_pointer(void *x)
{
     show_bytes((byte_pointer) &x, sizeof(void *));
}
 
/* Driver program to test above functions */
int main()
{
    int i = 1;
    float f = 1.0;
    int *p = &i;
    show_float(f);
    show_int(i);
    show_pointer(p);
    show_int(i);
    getchar();
    return 0;
}

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *