PaulS:
byte data[0];It's pretty stupid to declare an array that can hold 0 elements. It's even more stupid to then write more than 0 bytes to that array.
Mirf.getData((byte *) &data);I'm pretty sure that that & doesn't belong there.
Well, smartass, what makes you think that it doesnt belong there? It wouldnt be there if it didnt belong there.