如何顯示 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("
"); } 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

更新於:2019 年 7 月 30 日

472 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告