Размер указателя: sizeof(myPointer)
(равно sizeof(uint8_t*)
)
Размер указателя: sizeof(*myPointer)
(равно sizeof(uint8_t)
)
Если вы имели в виду, что это указываетк массиву, нет никакого способа узнать это.Указатель просто указывает и не заботится о том, откуда взято значение.
Чтобы передать массив через указатель, вам также необходимо передать размер:
void foo(uint8_t* pStart, size_t pCount);
uint8_t arr[10] = { /* ... */ };
foo(arr, 10);
Вы можете использоватьшаблон, облегчающий прохождение всего массива:
template <size_t N>
void foo(uint8_t (&pArray)[N])
{
foo(pArray, N); // call other foo, fill in size.
// could also just write your function in there, using N as the size
}
uint8_t arr[10] = { /* ... */ };
foo(arr); // N is deduced