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;
}