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

PHPz
リリース: 2023-09-09 13:29:06
転載
700 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート