Ciao devo fare questo esercizio.. vi prego aiutatemi!!

Implementare una funzione int *findwords(int n, char L[n][n], char *W[], int nw) che prende in input una matrice L di nxn caratteri alfabetici maiuscoli ('A','B',...,'Z') e un vettore W di nw stringhe (ognuna delle quali contiene una parola in lettere maiuscole), e ritorna un vettore C, allocato dinamicamente, che per ogni parola del vettore W conta il numero di volte che appare nella matrice L scritta in orizzontale o in verticale. Quindi, il vettore ritornato C deve avere dimensione nw e per ogni i, C[i] deve essere uguale al numero di volte che la parola W[i] appare in L. Ad esempio, se n = 10, la matrice L e il vettore W (nw = 4) sono:

matrice L vettore W
L B A R B A R B A C 0 "LUNA"
G U O V B L U N A L 1 "BARBA"
C H N N D U B N T R 2 "BARBE"
B A R A I N H T U V 3 "LUNARE"
W B A R B A I U V X
Y Z Z A V I L L M Y
N N T L R M M C C B
K J L U N A R E D G
J G H N N M I U T R
B B R A D O A N U L

allora la funzione ritorna il vettore C = [4, 3, 0, 1]. Qui sotto le occorrenze delle parole di W in L sono evidenziate in grassetto:

L B A R B A R B A C
G U O V B L U N A L
C H N N D U B N T R
B A R A I N H T U V
W B A R B A I U V X
Y Z Z A V I L L M Y
N N T L R M M C C B
K J L U N A R E D G
J G H N N M I U T R
B B R A D O A N U L