এখানে আমরা দেখব কিভাবে 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("\n"); } 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