Рубрики

Как вы будете показывать в памяти представление переменных C?

Напишите программу на C, чтобы показать представление в памяти переменных C, таких как int, float, указатель и т. Д.

Алгоритм:
Получите адрес и размер переменной. Введите адрес для указателя на символ. Теперь зациклите размер переменной и выведите значение по указателю типа.

Программа:

#include <stdio.h>

typedef unsigned char *byte_pointer;

  
/ * show bytes принимает указатель байта в качестве аргумента

  и печатает содержимое памяти из byte_pointer

  в 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 для проверки вышеуказанных функций * /

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;

}

Рекомендуемые посты:

Как вы будете показывать в памяти представление переменных C?

0.00 (0%) 0 votes