Meine Funktion:
int m3dmg_getOrientationMatrix( int16_t M ) { <-- so ist auch der Header
//UART Buffer auslesen
for ( int i=1 ; i <= 18 ; i=i+2 ) {
M [i] = ( (int16_t) responseBuffer[i] << 8 | (int16_t) responseBuffer[i+1] );
}
return M;
}

Meine Main:
int main(void) {
int16_t M[9];
...
int16_t *pitest2=m3dmg_getOrientationMatrix( M );
...
}

Error:
M[i]=...: error: subscripted value is neither array nor pointer

Das ist der aktuelle Stand.