View Full Version : ?Allocazione dinamica matrici?
Ragazzi ho un problema con l'allocazione delle matrici in C.
Vorrei allocare dinamicamente una matrice ... ma come si fa in C?
Io ci sono riuscito solo tramite una costante. Ho usato :
#define dim 100
per inizializzare la costante a 100 e poi la matrice l'ho inizializzata con:
A[dim][dim]
Esiste un modo migliore per fare la stessa cosa?
Grazie per le risposte, perchè ci saranno risposte vero :D
Motore di ricerca ;)
http://forum.hwupgrade.it/showthread.php?s=&threadid=603642&highlight=array
Originariamente inviato da cionci
Motore di ricerca ;)
http://forum.hwupgrade.it/showthread.php?s=&threadid=603642&highlight=array
Si l'avevo letto. Ma se faccio cosi' l'allocazione dinamica:
int i = 0;
int nrow = 0;
int ncol = 0;
/* mi carico nrow e ncol */
int** mat = (int**)malloc(nrow);
for(; i < nrow; i++)
mat[i] = (int*)malloc(ncol);
/* mi ci faccio i miei pastrocchi */
i = 0;
for(; i < nrow; i++)
free(mat[i]);
free mat;
Una volta allocata dinamicamente la matrice la devo passare come parametro di input in una funcion void. Poi il risultato della function sarà uguale a (matrice*vettore1)+vettore2. La matrice la devo passare con i puntatori (come un array monodimensionale)?
La devi passare così:
void f(int **m);
la function dovrebbe essere più o meno questa come la devo richiamare?
void function(float x[], float *y[], float **A[], int m, int n)
{
int i, j;
for (i=0; i<n; ++i)
{
for (j=0; j<m; ++j)
{
*y[i] = *A[j][i] * x[i] + *y[i];
}
}
}
poi dopo devo stamparmiil vettore y che contiene il risultato.
x,y ed A sono allocati dinamicamente; m ed n sono la dimensione di righe e colonne.
nella parentesi di malloc non ci vuole numerodirighe*sizeof(int)?
grazie
Nel primo ci vuole nrow * sizeof(int*) nel secondo ncol * sizeof(int)
Cmq è un po' vecchio questo thread ;)
banryu79
04-11-2008, 19:21
Un po' vecchio?
Questo si chiama Necroposting :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.