36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
|
|
1 | |
Функция, которая принимает буфер памяти05.03.2009, 19:25. Показов 2591. Ответов 14
Метки нет (Все метки)
Код
Напишите функцию, которая принимает буфер памяти и возвращает число long. Известно, что передается некая структура и число, которое нужно извлечь, начинается с пятого байта. И как извлечь число начиная с пятого байта?
0
|
05.03.2009, 19:25 | |
Ответы с готовыми решениями:
14
Функция которая принимает событие компонента как параметр Функция которая принимает в себя 3 числа Функция которая принимает любой класс функция которая принимает указатель на массив структур |
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
||||||
05.03.2009, 19:57 | 2 | |||||
0
|
17 / 17 / 0
Регистрация: 14.02.2009
Сообщений: 86
|
||||||
05.03.2009, 20:00 | 3 | |||||
"Некую структуру" тебе скорее всего надо передавать в виде указателя на void. А чтобы получить указатель на 5 байт - можно попробовать прикастить void* к char*, у которого 5 байт можно получить обратившись к 5 элементу через индекс.
вот пример:
Проблема только в том, что размер char в 1 байт кажется не документирован. я пробовал на VS 2003.
0
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
05.03.2009, 21:43 | 4 |
Нет. Стандарт, 5.3.3/1 гласит, что "sizeof(char), sizeof(signed char) and sizeof(unsigned char) are 1; ...."
0
|
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
|
||||||
05.03.2009, 23:22 | 5 | |||||
1
|
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
|
|
07.03.2009, 15:55 [ТС] | 6 |
чесно говоря не думал что void* a принимает буфер памяти...
идея конечно хорошая но как оно будет принимать начиная с 6 байта если я введу очень маленьное значение например 14.31 то оно будет крашиться. передается некая структура и число - вот эта строка меня вводит в ступор. может надо работать с буфером обмена? Добавлено через 1 минуту 25 секунд мдя... что-то не хочет код цытироваться...
0
|
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
|
||||||
07.03.2009, 16:36 | 7 | |||||
Известно, что передается некая структура. Число, которое нужно извлечь, начинается с пятого байта. например
Все конечно зависит,от компилятора. А может я ошибаюсь
0
|
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
|
|
07.03.2009, 21:00 [ТС] | 8 |
я зделал так... нахожу начало 5го байта стуктуры и начинаю читать но если число маленькое не в конце диапазона то программа крашиться потмоу что этот бит отсутствует...
0
|
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
|
|
07.03.2009, 22:52 | 9 |
Э,может я конечно туплю последнее время. Но число любого типа будет занимать одно и тоже количество байт в памяти,независимо от своей величины
0
|
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
|
|
08.03.2009, 21:38 [ТС] | 10 |
0
|
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
|
|
09.03.2009, 21:08 [ТС] | 12 |
Как на С/С++ изменить значение адреса. Конкретнее на примере:
получаю адресс 0x0013FF78 и мне надо изменить а точнее прибавить к текущему значению 4 байта.. как это зделать?
0
|
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
|
||||||
09.03.2009, 23:00 [ТС] | 14 | |||||
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
||||||
09.03.2009, 23:24 | 15 | |||||
c типом void * не допускаются матем вычисления
для начала
1
|
09.03.2009, 23:24 | |
09.03.2009, 23:24 | |
Помогаю со студенческими работами здесь
15
Функция которая принимает целое беззнаковое число. функция, которая принимает радиус окружности и рисует окружность из звездочек Функция которая принимает вектор указателей на числа и возвращает их сумму функция, которая принимает высоту треугольника и выводит на экран прямоугольный треугольник Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |