codice:
#include <stdio.h> 
#include <stdlib.h> 

void Inserisci (int *r,int *c) 
{ 
    printf ("Inserisci il numero delle righe della matrice:\n"); 
    scanf ("%d",r); 
    printf ("Inserisci il numero delle colonne della matrice:\n"); 
    scanf ("%d",c); 
} 

char controllo (int r1, int r2, int c1, int c2) 
{ 
    if(r1==r2 && c1==c2)
        return 0;
    return 1;     
} 

int main() 
{ 
    int r1; 
    int c1; 
    int r2; 
    int c2; 
    int i,j; 
    int **mat1; 
    int **mat2; 
    int **mat3;
    char sw=1; /* loop infinito */ 
 
    while(sw) 
    { 
        printf ("Prima matrice!\n"); 
        Inserisci (&r1,&c1); 
        printf ("Seconda matrice!\n"); 
        Inserisci (&r2,&c2);
        sw = controllo (r1,r2,c1,c2);  
    }; 

    mat1 = (int **) malloc(r1 * sizeof(int *)); 
    mat2 = (int **) malloc(r2 * sizeof(int *)); 
    mat3 = (int **) malloc(r1 * sizeof(int *)); 

    for (i=0;i<r1;i++)
    { 
        mat1[i] = (int *) malloc(c1 * sizeof(int)); 
        mat2[i] = (int *) malloc(c2 * sizeof(int)); 
        mat3[i] = (int *) malloc(c1 * sizeof(int)); 
    } 

    printf ("Inserisci gli elementi della prima matrice:\n"); 
    for (i=0;i<r1;i++) 
        for (j=0;j<c1;j++) 
            scanf ("%d",&mat1[i][j]); 
            printf ("La prima matrice e':\n\a"); 
            for (i=0;i<r1;i++) 
            { 
                for (j=0;j<c1;j++) 
                    printf ("%d\t",mat1[i][j]); 
                printf ("\n"); 
            } 

    printf ("Inserisci gli elementi della seconda matrice:\n"); 
    for (i=0;i<r2;i++) 
        for (j=0;j<c2;j++) 
            scanf ("%d",&mat2[i][j]); 
            printf ("La seconda matrice e':\n\a"); 
            for (i=0;i<r2;i++) 
            { 
                for (j=0;j<c2;j++) 
                    printf ("%d\t",mat2[i][j]); 
                printf ("\n"); 
            } 



    for (i=0;i<r1;i++) 
        for (j=0;j<c1;j++) 
            mat3[i][j] = mat1[i][j] + mat2[i][j]; 
            printf ("La matrice somma delle matrici inserite e':\n\a"); 
            for (i=0;i<r1;i++) 
            { 
                for (j=0;j<c1;j++) 
                    printf ("%d\t",mat3[i][j]); 
                printf ("\n"); 
            } 

    while(getchar()!='\n')
        ;
    printf("premi un tasto per uscire");    
    getchar();
    return 0; 
}
Così dovrebbe andare... provalo.

p.s. la prossima volta sei pregato di INDENTARE il codice (altrimenti è praticamente impossibile capire il flusso del programma (con tutti quei cicli FOR ) )

per indentare il codice basta inserirlo tra i tag [CODE*]codice programma[/CODE*] senza mettere l'asterisco!!!