Maison >développement back-end >C++ >Comment afficheriez-vous la représentation en mémoire d'une variable C ?

Comment afficheriez-vous la représentation en mémoire d'une variable C ?

PHPz
PHPzavant
2023-09-09 13:29:06731parcourir

Comment afficheriez-vous la représentation en mémoire dune variable C ?

Ici, nous verrons comment imprimer la représentation mémoire d'une variable C. Ici, nous afficherons des entiers, des nombres à virgule flottante et des pointeurs.

Pour résoudre ce problème, nous devons suivre les étapes suivantes -

  • Obtenez l'adresse et la taille de la variable
  • Tapez l'adresse en pointeur de caractère pour obtenir l'adresse en octet
  • Bouclez maintenant pour obtenir la taille de la variable et imprimez la valeur du pointeur de conversion de type.
  • Exemple

    #include <stdio.h>
    typedef unsigned char *byte_pointer; //create byte pointer using char*
    void disp_bytes(byte_pointer ptr, int len) {
        //this will take byte pointer, and print memory content
       int i;
       for (i = 0; i < len; i++)
          printf(" %.2x", ptr[i]);
       printf("</p><p>");
    }
    void disp_int(int x) {
       disp_bytes((byte_pointer) &x, sizeof(int));
    }
    void disp_float(float x) {
       disp_bytes((byte_pointer) &x, sizeof(float));
    }
    void disp_pointer(void *x) {
       disp_bytes((byte_pointer) &x, sizeof(void *));
    }
    main() {
       int i = 5;
       float f = 2.0;
       int *p = &i;
       disp_int(i);
       disp_float(f);
       disp_pointer(p);
       disp_int(i);
    }

    Sortie

    05 00 00 00
    00 00 00 40
    3c fe 22 00 00 00 00 00
    05 00 00 00

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer