C/Visual C - punteros dobles

 
Vista:

punteros dobles

Publicado por Miguel (1 intervención) el 22/02/2006 15:36:35
salu2!
tengo

int a[5][5];
int **ptr;

como puedo hacer para que ptr apunte a la mtriz a y asi usar a ptr como si fuera la matriz??
se podria entonces ptr[2][2] =5 ???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:punteros dobles

Publicado por Cipitio (2 intervenciones) el 22/02/2006 18:28:40
Mmm
Interesante preguntilla.

Tengo una respuesta, pero la voy a probar en casita (aqui no tienen mi amado DEV), dentro de 5 horas te respondo (tambien tengo que almorzar), pero lo más rapido posible, chao....

por cierto ve a c.conclase.net, al rato te entretengas un ratito ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:punteros dobles

Publicado por -.- (15 intervenciones) el 22/02/2006 19:35:27
tienes q reservar memoria primero.

tienes filas y columnas

int **matriz;

//reservas memoria para las filas ahora para las columnas
matriz=new int *[filas];

for(int i=0;i<filas;i++)
matriz=new int[columnas];

y ahora si puedes trabajar con matriz[2][2]=3; ,,etc

PD: no te olvides de liberar la memoria

for(int i=0;i<filas;i++)
delete [] matriz[i];

delete [] matriz;

^_^
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:punteros dobles

Publicado por Miguel (1 intervención) el 22/02/2006 20:06:46
lo que quiero es que
**ptr, apunte a una matriz de dos dimensiones que ya existe
y entonces usar a ptr como si de una matriz se tratase
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:punteros dobles

Publicado por Cipitio (2 intervenciones) el 22/02/2006 22:05:55
Ya te respondieron... pero.... si de algo te sirve.........

// Usando punteros, Febrero 2006
using namespace std;
#include <iostream>
#include <stdlib.h>
#define TAM 5

int main()
{
int a[TAM][TAM];
// llena la matriz de números...
for (int i = 0; i < TAM; i++)
{
for (int j = 0; j < TAM; j++)
a[i][j] = i + j;
}

// Muestra la matriz
for (int i = 0; i < TAM; i++)
{
for (int j = 0; j < TAM; j++)
cout <<" - " <<a[i][j];
cout <<endl;
}

system ("pause");
int **ptr;
ptr = new int *[TAM];

for (int k = 0; k < TAM; k++)
{
ptr[k] = a[k];
}

for (int k = 0; k < TAM; k++)
cout <<"\nDirección de &a[0][" <<k <<"] = " <<(k + a[0]);
cout <<endl;

for (int k = 0; k < TAM; k++)
cout <<"\nDirección que apunta ptr[0][" <<k <<"] = " <<(k + ptr[0]);
cout <<endl;

// Muestra la matriz
cout <<"\nMatriz segun puntero **ptr: " <<endl;
for (int i = 0; i < TAM; i++)
{
for (int j = 0; j < TAM; j++)
cout <<" - " <<ptr[i][j];
cout <<endl;
}
cin.get();
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar