L' operatore new[] alloca un array di oggetti (o tipi primitivi).
new[][] non esiste, puoi ottenere l' effetto voluto allocando prima x puntatori, poi ogni puntatore allocato lo fai puntare ad un' area di memoria ritornata da new[], passando y come argomento:
Ora l' errore di sintassi è risolto ma non ho controllato se il codice fa effettivamente quello che cerchi di fare.Se ci sono problemi dillo.codice:m[index].data=new int*[x]; for(int i=0; i<x;i++) m[index].data[i]=new int[y];