如何顯示 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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP