Prima di tutto, leggi il regolamento di questo forum e usa un TITOLO adeguato ...

In secondo luogo, non hai riportato il codice contenuto nel file

codice.h

e quindi non si puo' controllare ...

In ogni caso, non scrivere le

codice:
typedef struct struttura {
int bin[bit];
char s[DIM];
};

typedef struttura alg[DIM];
all'interno del main, ma fuori, all'inizio.

E poi, fatto piu' importante, indica un valore COSTANTE al posto della variabile bit nella riga

int bin[bit];

cosi' come fatto per la DIM, perche' del codice cosi' scritto puo' essere compilato solamente da compilatori C99 (cosa comunque sconsigliata perche' poco utilizzata).