Тема: Вказівник на рядок в двохвимірному масиві
Оголошено двовимірний масив:
uint16_t buffVal[4][32];
4 рядки, а в рядку по 32 uint16_t. А по суті це 128 комірок для uint16_t
В циклі треба передати в функцію вказівник спочатку на 0 елемент масиву (це початок першого рядка двовимірного масиву), потім на 32 елемент (це початок другого рядка двовимірного масиву), потім на 64 елемент (третій рядок) і 96 елемент (четвертий рядок). А вже в функції обробити рядок з 32-х uint16_t.
Роблю так:
Функція:
uint16_t func(uint16_t *buff)
{
uint tmp;
for (int i = 0; i < 32; ++i)
{
tmp += buff[i];
}
return (uint16_t) tmp / 32;
}
Викликаю функцію так:
for (int i = 0; i < 4; ++i)
{
dataFilterADC[i] = func(&buffVal[i][0]);
}
В мене є сумніви чи це є правильно. Сумніви і по передачі вказівника у функцію на початок даних які потрібно обробити і сумніви щодо перебору елементів масиву в самій функції.
Гуглив, читав, всеодно не розумію. Мені вказівники дуже складно даються. Допоможіть будь ласка.