How will you show memory representation of C variables?
Write a C program to show memory representation of C variables like int, float, pointer, etc.
Algorithm:
Get the address and size of the variable. Typecast the address to char pointer. Now loop for size of the variable and print the value at the typecasted pointer.
Program:
#include <stdio.h> typedef unsigned char *byte_pointer; /*show bytes takes byte pointer as an argument and prints memory contents from byte_pointer to byte_pointer + len */void show_bytes(byte_pointer start, int len) { int i; for (i = 0; i < len; i++) printf(" %.2x", start[i]); printf("\n"); } void show_int(int x) { show_bytes((byte_pointer) &x;, sizeof(int)); } void show_float(float x) { show_bytes((byte_pointer) &x;, sizeof(float)); } void show_pointer(void *x) { show_bytes((byte_pointer) &x;, sizeof(void *)); } /* Drover program to test above functions */int main() { int i = 1; float f = 1.0; int *p = &i; show_float(f); show_int(i); show_pointer(p); show_int(i); getchar(); return 0; } |
chevron_right
filter_none
Recommended Posts:
- Static Variables in C
- Variables and Keywords in C
- Constants vs Variables in C language
- Implicit initialization of variables with 0 or 1 in C
- Initialization of static variables in C
- Operations on struct variables in C
- Can Global Variables be dangerous ?
- Initialization of variables sized arrays in C
- Initialization of global and static variables in C
- C Program to print environment variables
- What are the default values of static variables in C?
- How are variables scoped in C - Static or Dynamic?
- An Uncommon representation of array elements
- Linking Files having same variables with different data types in C
- Swap two variables in one line in C/C++, Python, PHP and Java



