Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/08/2011, 19:44
Avatar de roque510
roque510
 
Fecha de Ingreso: agosto-2011
Mensajes: 2
Antigüedad: 13 años, 3 meses
Puntos: 0
APUNTADORES A ARREGLOS MULTIDIMENSIONALES desde FUNCION

hola recien acabo de descubrir la manera de poder hacer que podamos a puntar a un arreglo multidimensional desde una funcion o como tambien he visto en otro tema por ahi el impossible retorno de arreglos. pues hace dias yo hice una pregunta con respecto a ese problema se sabe que el retorno de arreglos es IMPOSIBLE almenos... que utilizemos un apuntador des esta manera logramos hacer que el arreglo al que quisieramos retornar lo modificaramos desde una funcion. pus bueno luego de eso tuve el problema que no podia apuntar hacia un arreglo bidimensional! :/ despues de un poco de investigacion lo he descubierto y como nadie me pudo responder mi pregunta solo quiero compartirlo para ayuda de nuestro FORO :D pues es muy facil y es algo asi

#include <conio.h>
#include <stdio.h>

void apuntarre(int [3][3]);
void main(){
int arre[3][3];

apuntarre(arre);

for(int x=0;x<3;x++){
for(int y=0;y<3;y++){
printf("%d",arre[x][y]);

}
printf("\n");
}







getch();
}//fin del main

void apuntarre(int arre[3][3]){
int *ptr,a=0;

ptr=(int*)arre;

for(int x=0;x<9;x++){

ptr[x]=a;
a++;

}


}//fin del apuntarre

si nos fijamos la diferencia es que un apuntador no reconoce el momento en el que un arreglo termina los renglones (asi como puede hacerlo un arreglo) y acordemonos que los arreglos en memoria son organizados de manera lineal que por ejemplo seria algo asi

1,2,3,4,5,6,7,8,9

nosotros vemos un arreglo bidimensional de esta manera

123
456
789

o por lo menos varios de nosotros. estos renglones son los que un apuntador no puede ver(lo que un arreglo si) entonces la manera en que podamos apuntar a un arrgelo de este tipo es seguir contando los desplazamientos del arreglo en el apuntador como si fuese de una sola dimension. lo cual seria como un solo arreglo pero en ves de ser arre [3][3] el apuntador lo veria de esta manera [9] y es asi como podemos modificar un arreglo de este tipo . y de la misma manera se hace con un tipo char .

espero esto ayude un poco a personas como yo que no sabiamos como hacer esto SALUDOS