Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
задачка на си
Отправлено
NAUT 24 августа 2009, г. 18:21
в памяти лежит некий тяжелый массив.
все используемые стандартные подпрограммы работают с массивом примерно так: DoEverything(int deviceAddr, int length, int* data).
Нужно перед тем как в девайс попадут данные из data[] как-то засунуть свои несколько байтиков, но подпрограмма перелопачивает массив по порядку, и другие подпрограммы тоже пишут в массив по порядку. Можно выйти из положения, применив манипуляции с массивом, чтобы не трогать кучу подпрограмм? Самое простое - скопировать данные из старого массива в новый побольше, чтобы в новом вначале лежали мои байтики, но перекопировать не шарман. Хочется объявить свой массив рядышком, чтобы свои байты туда засунуть, указатель подсовывать на него, а длину указать общую. Как сделать чтобы массивы лежали рядом?
Составить ответ | Вернуться на конференцию.
Ответы
- Создай структуру, в которой будет размер массива и его адрес, а потом массив таких структур. И передава на обработку указатель на этот массив, и количество записей в этом массиве. Очень гибко будет. - Каа (24.08.2009, 19:53:42 85.172.44.66, пустое)
- здесь не понял... а можно код? - NAUT (24.08.2009, 20:33:51 213.85.253.138, пустое)
- Ответ: - Каа (24.08.2009, 21:24:45 85.172.44.66, 871 байт)
- спасибо, но ээээ.... не я не понял)) смысл какой хотелось - есть куча подпрограмм библиотечных которые работают с массивом. Мне понадобилось этот массив расширить своими данными так, чтобы библиотечные подпрограммы не трогать. а здесь вот эта функция bon_apetite(arr_struct *my_arrays, int num) обрабатывает массив структур, я так понимаю она в качестве примера стандартной функции здесь была... - NAUT (24.08.2009, 21:35:34 213.85.253.138, пустое)
- пардон, я недочитал, там надо оставить имеющиеся функции, которые работают только с цельным массивом... Ну тогда только рядом массивы помещать. - Каа (24.08.2009, 21:28:30 85.172.44.66, пустое)
- что с датчиком? - Aleksey75 (24.08.2009, 18:46:59 92.49.139.116, пустое)
- Создать структуру с двумя массивами. - vmp (24.08.2009, 18:25:52 10.0.1.100,87.245.155.198, 183 байт)
- имелось в виду что length = naut_size+ data_size ? - NAUT (24.08.2009, 18:36:10 192.168.0.249,85.90.99.170, пустое)
- Да. - vmp (24.08.2009, 18:47:19 10.0.1.100,87.245.155.198, пустое)
- точно, я знал что выход рядом) спасибо! - NAUT (24.08.2009, 18:33:28 192.168.0.249,85.90.99.170, пустое)
- среда - winavr - NAUT (24.08.2009, 18:23:58 192.168.0.249,85.90.99.170, пустое)