|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1360
|
?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 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1360
|
Quote:
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)? |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
La devi passare così:
void f(int **m); |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1360
|
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. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Caserta
Messaggi: 1211
|
nella parentesi di malloc non ci vuole numerodirighe*sizeof(int)?
grazie
__________________
VENDO SAMSUNG I900 http://www.hwupgrade.it/forumshowthr...7#post34211007 |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Nel primo ci vuole nrow * sizeof(int*) nel secondo ncol * sizeof(int)
Cmq è un po' vecchio questo thread |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Un po' vecchio?
Questo si chiama Necroposting
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:59.



















