ホームページ >バックエンド開発 >C++ >C 変数のメモリ表現を表示するにはどうすればよいでしょうか?

C 変数のメモリ表現を表示するにはどうすればよいでしょうか?

PHPz
PHPz転載
2023-09-09 13:29:06702ブラウズ

C 変数のメモリ表現を表示するにはどうすればよいでしょうか?

ここでは、C 変数のメモリ表現を出力する方法を見ていきます。ここでは、整数、浮動小数点数、ポインタを表示します。

この問題を解決するには、次の手順に従う必要があります。

  • 変数のアドレスとサイズを取得します。
  • アドレスの型を文字ポインタに変換して、バイト アドレスを取得します。
  • ここでループして変数のサイズを取得し、型が変換されたポインターの値を出力します。
  • #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);
    }

    出力

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

以上がC 変数のメモリ表現を表示するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。