СА
вот функция котрая возвращает массив:
uint8_t * BufRingGet(void) {
uint8_t dataret[BUF_SIZE];
memcpy(&dataret, &struct_ringbuf[in_ptr_s].data, BUF_SIZE);
in_ptr_s++;
in_full = 0;
if (in_ptr_s == RINGBUFSIZE) { in_ptr_s = 0; }
return &dataret;
}
причём я не уверен в последнем return &dataret; или return dataret;
так вот
этот BufRingGet будет в другой функции параметром
примерно так:
Log_array(LL_DEBUG, BufRingGet(), BUF_SIZE);
сам Log_array выглядит так:
void Log_array(int level, uint8_t _arr[], int size) {
if (level <= loglevel) {
if (logAllowConsole) {
utime = time(NULL);
t = localtime(&utime);
unsigned int sysuid = (unsigned int)syscall(SYS_gettid);
FILE* logfile;
logfile = stdout;
fprintf(logfile, "%04u.%02u.%02u %02u:%02u:%02u [%u] %s \n", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec, sysuid, LOG_CLASSES[level]);
fprintf(logfile, "array of %u bytes: ", size);
for (uint8_t i = 0; i < size; i++) {
if ((i % DBG_BYTES_IN_COL) == 0) { fprintf(logfile, " "); }
if ((i % DBG_BYTES_IN_STRING) == 0) { fprintf(logfile, "\n"); }
fprintf(logfile, "%02X ", _arr[i]);
}
fprintf(logfile, "\n");
fflush(logfile);
}