Programma matrici

di il
2 risposte

Programma matrici

Ciao a tutti..vi volevo chiedere una cosa che probabilmente vi risultera alquanto facile..
io ho un esercizio del genere


/*Creare i file matrici.h e matrici.c che consentano di utilizzare la seguente
funzione:

extern double *diag (double *matr, size_t n);

La funzione accetta come parametro matr, un puntatore ad una zona di memoria
contenente una matrice quadrata di lato n (il secondo parametro), memorizzata
per righe, ovvero contenente n*n elementi dei quali i primi n sono la prima
riga, i successivi n la seconda e così via.
La funzione deve ritornare un puntatore ad una nuova zona di memoria
(allocata dinamicamente nell’heap) contenente gli elementi della diagonale
principale di matr.

*/ora cio che non so è come fare ad accedere agli elementi della diagonale avendo solo il puntatore
al vettore bidimensionale(matrice):
il mio codice è questo:

double *diag(double *matr, size_t n)
{
int matrice[3][3] = { { 1, 2, 3 }, {4,5,6}, {7,8,9} }, *pnMatrice;
pnMatrice = &matrice;
double *pnDiag;
int i, j;

pnDiag = (double*)malloc(n*sizeof(double));


//double pnDouble;

for (i = 0; i < n; i++)

for (j = 0; j < n; j++)
{

//pnDouble = matr;

if (i == j)
pnDiag = matr[j]; (qui però mi da errore)

}


return pnDiag;

}

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte