This declares abc as a function with void return type that has a parameter of type uint8_t**:
Code:
void abc(uint8_t *receiveBuffer[]){
Notice the double asterisks, i.e., receiveBuffer is declared to be a pointer to a pointer to uint8_t. Now, when you pass an array of 256 uint8_t as an argument, it is converted to a pointer to its first element. Therefore, you probably want:
Code:
void abc(uint8_t receiveBuffer[]){
or equivalently:
Code:
void abc(uint8_t *receiveBuffer){
Note that this kind of type mismatch is something that your compiler can warn you about, so compile at a high warning level and pay attention to compiler warnings.