..и не будет работать. А все из-за & _MsgBuf Имя массива одновременно является константным указателем на него. Взятие адреса от _MsgBuf лишнее. Эт я упустил по маразматическим соображениям ;)
Вот работающий пример:
unsigned char buf_test[2] = {1,2};
unsigned char var_test = 5;
void f(unsigned char **ptrarr, unsigned char *count);
void main(void)
{
unsigned char *ptrBuf;
unsigned char countBuf;
unsigned char test;
f(&ptrBuf,&countBuf);
test = *ptrBuf; // в test будет 1
test = *(ptrBuf+1); // в test будет 2
test = countBuf; // в test будет 5
}
void f(unsigned char **ptrarr, unsigned char *count)
{
*ptrarr=(unsigned char *) buf_test;
*count = var_test;
}
Пробуйте.