¿Dónde está el ERROR? (¡Porfa help!)

Varo
31 de Diciembre del 2002
Al compilar esto me sale la típica ventana de Windows con las opciones Cerrar y Detalles. ¿Sabríais decirme donde me he equivocado?

Muchas gracias de antemano.

#include <stdio.h>

/*defino los tipos*/
typedef double tabla[100][100];
typedef struct{
tabla d;
int orden;
}matriz;

/*prototipo*/
double traza(matriz d);

/*principal*/
void main(void){
matriz a;
double resultado;

/*doy valores*/
a.orden=2;a.d[1][1]=9;a.d[1][2]=5;a.d[2][1]=3;a.d[2][2]=2;

resultado=traza(a);
printf("%f",resultado);
getch();
}

/*función traza*/
double traza(matriz d){
double t;

t=d.d[1][1]+d.d[2][2];

return(t);
}

webJose
31 de Diciembre del 2002
Esta definición:

typedef double tabla[100][100];

parece incorrecta. Creo que lo que usted quiere es:

typedef double[100][100] tabla;