Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Declarar un apuntador a una matriza[5][5]

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Declarar un apuntador a una matriza[5][5] Responder citando

Hola amigos del foro, Estoy desarrollando un programita que trabaja con dos matrices que pertenecen a una clase, int Resultado[500][500] e int Datos[500][500], utilizo a Resultado para almacenar modificaciones realizadas a la matriz Datos, Inicialmente ambas tienen los mismos valores almacenados:

Resultado[In][Jn] = Datos[In][Jn]

pero constantemente se esta modificando el contenido de la matriz Resultado, una vez modificada dicha matriz muestro los resultados(osea la matriz Resultado) y nuevamente igualo el contenido de Resultado con el de Datos para nuevas modificaciones:

Resultado[In][Jn] = Datos[In][Jn]

Me gustaria saber si es posible manejar esta situacion de una mejor forma con apuntadores, de tal manera que se ahorre procesamiento pues un:

Código:


  for(int i = 0;i < 500;i++)
    for(int j = 0;j < 500;j++)
      Resultado[i][j] = Datos[i][j];



varias veces puede llgar a ser muy demorado. Algo asi como crear una matriz Resultado con doble apuntador y luego hacer que este apunte a la direccion de la matriz Datos:
Mejor dicho:

Código:


int **CrearMatriz(int n, int m)
{
    int **NuevaMatriz;
    int i,j;
    NuevaMatriz = new int*[n];
    for (i = 0; i < n; i++)
     NuevaMatriz[i] = new int[m];
         for (i = 0; i < n; i++)
    for (j = 0; j < m; j++)
   NuevaMatriz[i][j]=0;
   return(NuevaMatriz);
}

int Datos[500][500];
int **Resultado =  CrearMatriz(500,500);
Resultado = <Direccion de memoria de la matriz Datos>???????????

Como podria hacer esto, si lo de la linea anterior, sin utilizar memoria dinamica para la matriz Datos, es decir poder hacer algo como:

Resultado = &Datos[][]??????????????

y no esto:

int **Resultado =  CrearMatriz(500,500);
int **Datos       =  CrearMatriz(500,500);
Resultado =  *&Mat;//Esto si es valido



Disculpen el larguero de consulta, espero que me entiendan,

De antemano muchas gracias.

Saludos.
Volver arriba
Mensaje    Asunto: Responder citando

Hola

Como poderse se puede hacer, pero de esa forma solo tienes una sola matriz, esto quiere decir :

int **Datos = CrearMatriz(500,500);
int **Resultado = Datos;

aqui tienes una sola matriz con dos punteros, desde los dos punteros accedes a la misma informacion ( no igual, LA MISMA ) por lo que si modificas desde Resultado, se modifica el contenido original de Datos.

Me da que no te quedan mas narices que hacerlo como lo estas haciendo.
_________________
Salu2
KAYETANO
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Gracias Responder citando

Hola Kayetano, gracias por leer mi mensaje,
Entonces si no hay de otra, seguire trabajando asi.
gracias.

Saludos.
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.