Ciao, visto che non mi sembrava ci fossero errori ho fatto il debug al posto tuo.
Aggiungendo qualche printf(), si vede che la stringa viene passata correttamente ma le frequenze non coincidono.
IL PROBLEMA è il calcolo delle frequenze, è da rivedere
codice:int anagramma (char* s2,int* frequenza) { int i,uguali=1,frequenza2[dim]={0}; //guardo il numero e il tipo di lettera nella stringa s2 for (i=0;s2[i]!='\0';i++) { frequenza2[s2[i]]++; // MANCA LA PARENTESI DI CHIUSURA