El error esta en el contador, lo estas usando y declarando en el ciclo(al estilo C99).
Para compilar sin tocar el codigo debes pasarle un parametro al compilar, en el caso de gcc -std=c99.
gcc -std=c99 fuente.c -o executable
la otra opcion seria simplemente declarar la variable, por ejemplo para la funcion hacer_tabla:
void hacer_tabla(celda *tabla[], int maxt) {
int i;
for(i=0; i<maxt; i++) tabla[i]=NULL;
}
en lugar de :
void hacer_tabla(celda *tabla[], int maxt) {
for(int i=0; i<maxt; i++) tabla[i]=NULL;
}