Hola:
lola2, mira, el trabajo con matrices es un standar y la mejor manera (no es general) en la que yo las implemento es haciendo 4 metodos fundamentales (aparte de los comunes...), estos son:
-   
- // Aclaro que es una matriz de 2 dimensiones, codigo extensible a otros casos. 
- // Para matrices dinamicas de apuntadores a Tipo, generica .... 
-   
- // Coloca "value" en [row, col] de myMatriz y retorna la nueva myMatriz 
- Matriz* SetValue(Matriz* myMatriz, Tipo* value, int row, int col); 
-   
- // Retorna "value" en [row, col] de myMatriz 
- Tipo* GetValue(Matriz* myMatriz, int row, int col); 
-   
- // Retorna TODA la fila "numberofRow" 
- Tipo* GetRow(int numberofRow); 
-   
- // Retorna TODA la columna "numberofCol" 
- Tipo* GetCol(int numberofCol); 
-   
- // Codigo ..... 
- Matriz* Multiplicar(Matriz* myMatrizA, Matriz* myMatrizB, Matriz* myMatrizResult); 
-   
-   
Asi es mas sencillo realizar las tareas de MULTIPLICACION, haciendo los ciclos anidados y obteniendo asi en cada momento la FILA y la COLUMNA necesaria para realizar la multiplicacion y obtener cada nuevo elemento de la matriz resultante.
Espero que te sirva, y estudia mucho para  este examen !!!!!!!!
Salu2, 
 
   
   
 LordFord