реклама на сайте
подробности

 
 
> Считывание данных в глобальный массив.
Jenya7
сообщение Dec 17 2015, 08:49
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



У меня есть внешняя память куда я логирую данные.
Данные с памяти я считываю функцией
Код
uint32_t LOGGER_Read(uint32_t address, uint32_t lenght, uint8_t *buffer)

то есть передаю начальный адрес, размер и массив куда писать.
тестирую так
Код
void Test_SetLog(void)
{
    for (int i=0; i<180; i++)
    {
        LOGGER_WriteDayDelta(i);
    }
}

void Test_GetLog(void)
{
    uint32_t packet_size = 180;
    uint8_t deltas[packet_size];
    LOGGER_Read(START_LOG_ADRESS,packet_size,deltas);
}

все работает. все прекрасно. с локальным массивом фиксированной длины.

Теперь мне в одном месте данные нужно считать а в другом их обработать, поэтому мне нужен глобальный массив. причем массив переменной длины, так как количество считываемых записей меняется.
Код
uint8_t *deltas_log;
GetLog(deltas_log);

Где

void GetLog(uint8_t *deltas)
{
    uint32_t packet_size = 180; //for debug
    LOGGER_Read(START_LOG_ADRESS,packet_size,deltas);
}


указатель понятно дело не инициализируется и я получаю массив заполненный мусором.
как мне правильно передать массив (указатель) в функцию?


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
XVR
сообщение Dec 17 2015, 11:57
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Массив надо сначала где то создать. malloc (если на С) или new char[...] (если на С++) вам в помощь
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 15:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01343 секунд с 7
ELECTRONIX ©2004-2016