#include <stdio.h> #include <stdlib.h> int traccia (int **a, int n); int main() { int i,j, n,t; int **a; n=5; // supponiamo di avere abbastanza memoria per allocare la matrice a= (int**) calloc (n, sizeof(int*)); for(i=0; i< n; i++) a[i]= (int*) calloc (n, sizeof(int)); for(i=0; i< n; i++) for(j=0; j< n; j++) a[i][j]= i*j; t = traccia(a,n); printf ("La traccia della matrice e': %d\n",t); for (i=0; i<n; i++) free(a[i]); free(a); getchar(); return 0; } int traccia (int **a, int n) { int i, tr; tr=0; for(i=0; i< n; i++) tr += a[i][i]; return tr; }