Cisky89
12-06-2010, 22:38
Ciao a tutti!!!
sono nuovo nel forum quindi chiedo scusa preventivamente x qualsiasi errore da me commesso :D
passo subito a porvi il mio quesito:
i due codici posti di seguito per il calcolo della diagonale di una matrice sono entrambi esatti vero??? se si, fanno entrambi le stesse identiche cose anche se in maniera differente giusto???
codice 1:
int diag(int n)
{
int mat[n][n], i, j, sum=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
mat[i][j]=5;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(i==j)
sum+=mat[i][i];
}
return sum;
}
codice 2:
int diag(int n)
{
int **mat,i,j,sum=0;
mat=(int**)malloc(n*sizeof(int*));
for(i=0;i<n;i++)
mat[i]=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
for(j=0;j<n;j++)
mat[i][j]=5;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(i==j)
sum+=mat[i][i];
}
return sum;
}
se entrambi sono corretti e fanno le stesse identiche cose, l'unica cosa che cambia è che con il secondo programma alloco dinamicamente memoria nello heap mentre col primo no...giusto???
sono nuovo nel forum quindi chiedo scusa preventivamente x qualsiasi errore da me commesso :D
passo subito a porvi il mio quesito:
i due codici posti di seguito per il calcolo della diagonale di una matrice sono entrambi esatti vero??? se si, fanno entrambi le stesse identiche cose anche se in maniera differente giusto???
codice 1:
int diag(int n)
{
int mat[n][n], i, j, sum=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
mat[i][j]=5;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(i==j)
sum+=mat[i][i];
}
return sum;
}
codice 2:
int diag(int n)
{
int **mat,i,j,sum=0;
mat=(int**)malloc(n*sizeof(int*));
for(i=0;i<n;i++)
mat[i]=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
for(j=0;j<n;j++)
mat[i][j]=5;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(i==j)
sum+=mat[i][i];
}
return sum;
}
se entrambi sono corretti e fanno le stesse identiche cose, l'unica cosa che cambia è che con il secondo programma alloco dinamicamente memoria nello heap mentre col primo no...giusto???