| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  05-05-2002, 14:53 | #1 | 
| Member Iscritto dal: Mar 2002 
					Messaggi: 8
				 | 
				
				Passaggio per indirizzo di un array bidimensionale
			 
		Il caso è questo: - dichiarazione array: char cTabellone[15][30]; - chiamata della funzione con passaggio dell'array x indirizzo: visualizza_tabellone(cTabellone); - prototipo della funzione: void visualizza_tabellone(char *cTabellone); Dove sbaglio? Grazie! 
				__________________ [/siz] | 
|   |   | 
|  05-05-2002, 18:58 | #2 | 
| Senior Member Iscritto dal: Dec 1999 
					Messaggi: 139
				 | 
		.
		 
				__________________ Ingegnere: colui che ha molta familiarità con i modelli e molto poca con le modelle. | 
|   |   | 
|  05-05-2002, 19:06 | #3 | 
| Member Iscritto dal: Mar 2002 
					Messaggi: 8
				 | 
		Ma il prototipo della funzione ha bisogno di qualche modifica?
		 
				__________________ [/siz] | 
|   |   | 
|  05-05-2002, 19:11 | #4 | 
| Member Iscritto dal: Mar 2002 
					Messaggi: 8
				 | 
		Perchè come mi hai detto tu mi accetta solo la prima dimensione, e nella funzione posso usarlo solo come array monodimensionale.
		 
				__________________ [/siz] | 
|   |   | 
|  05-05-2002, 19:33 | #5 | 
| Senior Member Iscritto dal: Dec 1999 
					Messaggi: 139
				 | 
		ritiro tuttoooooooooo scusa mi sono fumanto il brain 
				__________________ Ingegnere: colui che ha molta familiarità con i modelli e molto poca con le modelle. | 
|   |   | 
|  05-05-2002, 20:05 | #6 | 
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | 
		void visualizza_tabellone(char **cTabellone) Un vettore bidimensionale è a tutti gli effetti un vettore di puntatore quindi bisogna passargli un puntatore a un puntatore... | 
|   |   | 
|  06-05-2002, 01:13 | #7 | 
| Senior Member Iscritto dal: Dec 1999 
					Messaggi: 139
				 | 
		Puoi fare così se puoi passare le dimensioni dell' array:  Codice: #include <stdio.h>
void q(char p[15][30]);
int main(){
int i;
 char cTabellone[15][30];
 for(i=0;i<30;++i){
  cTabellone[0][i]='0';
 cTabellone[1][i]='A';
 }
q(cTabellone);
 }
void q(char p[15][30]){
printf("%c",p[1][1]);
}Codice: #include <stdio.h>
void q(char *p);
int main(){
int i;
 char cTabellone[15][30];
 for(i=0;i<30;++i){
  cTabellone[0][i]='0';
 cTabellone[1][i]='A';
 }
q(&cTabellone[0][0]);
 }
void q(char *p){
printf("%c",*(p+31)); //*(p+31) in questo caso è il primo elemento dell' array = A
}int main(){ ... q(&cTabellone[0][0],15,30) ... } void q(char *p,int righe,int colonne){ ... } 
				__________________ Ingegnere: colui che ha molta familiarità con i modelli e molto poca con le modelle. | 
|   |   | 
|  06-05-2002, 08:40 | #8 | 
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | 
		MickMacello : nel primo caso, se non sbaglio, passi l'array per valore...non oso pensare quanto sia lento    Nel secondo non puoi più usare l'indicizzazione bidimensionale, ma solo quella monodimensionale... | 
|   |   | 
|  06-05-2002, 17:58 | #9 | ||
| Senior Member Iscritto dal: Dec 1999 
					Messaggi: 139
				 | Quote: 
  : Codice: #include <stdio.h>
void q(char p[15][30]);
int main(){
 int k,j;
 char cTabellone[15][30];
 for(k=0;k<15;++k)
  for(j=0;j<30;++j)
   cTabellone[k][j]='Q';
 for(k=0;k<15;++k)
  for(j=0;j<30;++j)
   printf("%d\t%c\n",k*30+j,cTabellone[k][j]);
 printf("\n");
 q(cTabellone);
 for(k=0;k<15;++k)
  for(j=0;j<30;++j)
   printf("%d\t%c\n",k*30+j,cTabellone[k][j]);
 printf("\n");
}
void q(char p[15][30]){
 int k,j;
 for(k=0;k<15;++k)
  for(j=0;j<30;++j)
   p[k][j]='Z';
}Quote: 
 
				__________________ Ingegnere: colui che ha molta familiarità con i modelli e molto poca con le modelle. | ||
|   |   | 
|  06-05-2002, 18:38 | #10 | 
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | 
		Ah...è vero... Inoltre con i vettori statici lo devi per forza passare come hai detto tu nel primo esempio...o al massimo così : void q(char p[][23]) Non sono abituato a lavorare con i vettori statici   | 
|   |   | 
|  06-05-2002, 21:22 | #11 | |
| Member Iscritto dal: Mar 2002 
					Messaggi: 8
				 | Quote: 
 
				__________________ [/siz] | |
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 01:23.









 
		 
		 
		 
		







 
  
 



 
                        
                        










