Intanto

char chiavi_ricerca[dim];

è un vettore e non un array (le stringhe sono vettori in C, un insieme di stringhe sono vettori di vettori), ma la cosa più importante è che devi usare (a meno del discorso dello standard C99 su cui non mi soffermo) l'allocazione dinamica della memoria per il tuo array di stringhe.