Данные с памяти я считываю функцией
Код
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);
}
{
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);
}
GetLog(deltas_log);
Где
void GetLog(uint8_t *deltas)
{
uint32_t packet_size = 180; //for debug
LOGGER_Read(START_LOG_ADRESS,packet_size,deltas);
}
указатель понятно дело не инициализируется и я получаю массив заполненный мусором.
как мне правильно передать массив (указатель) в функцию?