Запись в память и чтение значений разных типов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Есть память, думал можно, а оказалось я в тупике, как покласть в память одно число long long 8 байтовое и штук несколько однобайтовых unsigned charиков? Делал так:
Листинг программы
  1. int main(){
  2. long long a = 1010101
  3. unsigned char b = 1;
  4. *unsigned char *mem = malloc(264);
  5. // И вот тут я офигел
  6. //В PureBasic мне дико нравилось что есть функции pokel и pokec для
  7. // укладывания в память по одному указателю разномастных данных, они тупо накладывались на
  8. // столько байт сколько требовалось, какой способ наипростейший в Си?
  9. return 0;
  10. }

Решение задачи: «Запись в память и чтение значений разных типов»

textual
Листинг программы
  1. unsigned char* p;
  2. p = mem;
  3. *((long long*)p) = a;
  4. p += sizeof(long long);
  5. *p = b;
  6. p++;
  7. *p=b;

Объяснение кода листинга программы

В данном коде происходит следующее:

  1. Объявляется указатель p на тип unsigned char.
  2. p приводится к mem.
  3. В mem записывается значение a по приведенному значению типа long long.
  4. p инкрементируется на размер типа long long.
  5. В p записывается значение b.
  6. p инкрементируется на 1.
  7. В p записывается значение b.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.267 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы