如何顯示 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
廣告