| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  26-01-2004, 18:20 | #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   | 
|   |   | 
|  26-01-2004, 19:45 | #2 | 
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | |
|   |   | 
|  26-01-2004, 19:59 | #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)? | |
|   |   | 
|  26-01-2004, 20:10 | #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); | 
|   |   | 
|  26-01-2004, 20:26 | #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. | 
|   |   | 
|  04-11-2008, 16:37 | #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 | 
|   |   | 
|  04-11-2008, 19:24 | #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   | 
|   |   | 
|  04-11-2008, 20:21 | #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:09.









 
		 
		 
		 
		









 
  
 



 
                        
                        










