Запись в память и чтение значений разных типов - C (СИ)
Формулировка задачи:
Здравствуйте.
Есть память, думал можно, а оказалось я в тупике, как покласть в память одно число long long 8 байтовое и штук несколько однобайтовых unsigned charиков?
Делал так:
int main(){ long long a = 1010101 unsigned char b = 1; *unsigned char *mem = malloc(264); // И вот тут я офигел //В PureBasic мне дико нравилось что есть функции pokel и pokec для // укладывания в память по одному указателю разномастных данных, они тупо накладывались на // столько байт сколько требовалось, какой способ наипростейший в Си? return 0; }
Решение задачи: «Запись в память и чтение значений разных типов»
textual
Листинг программы
unsigned char* p; p = mem; *((long long*)p) = a; p += sizeof(long long); *p = b; p++; *p=b;
Объяснение кода листинга программы
В данном коде происходит следующее:
- Объявляется указатель
p
на типunsigned char
. p
приводится кmem
.- В
mem
записывается значениеa
по приведенному значению типаlong long
. p
инкрементируется на размер типаlong long
.- В
p
записывается значениеb
. p
инкрементируется на 1.- В
p
записывается значениеb
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д