 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Bejuco Invitado
|
Publicado: Lun 28 Oct, 2002 4:59 pm Asunto: Declarar un apuntador a una matriza[5][5] |
|
|
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 |
|
 |
KAYETANO Ens

Registrado: 04 Sep 2002Mensajes: 37
|
Publicado: Mar 29 Oct, 2002 9:43 am Asunto: |
|
|
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 |
|
 |
Bejuco Invitado
|
Publicado: Mie 30 Oct, 2002 5:59 am Asunto: Gracias |
|
|
Hola Kayetano, gracias por leer mi mensaje,
Entonces si no hay de otra, seguire trabajando asi.
gracias.
Saludos. |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|