Ver Mensaje Individual
  #1  
Antiguo 16-08-2007
waremovil waremovil is offline
Miembro
 
Registrado: ago 2007
Ubicación: Zaragoza
Posts: 78
Reputación: 17
waremovil Va por buen camino
Problema con punteros

Hola a todos, esta es la primera vez que posteo en este foro, aunque llevo mucho tiempo realizando consultas.

Aunque programo en varios lenguajes, hace poco que estoy programando en c++ (en concreto el de borland)

es un poco difícil acostumbrarme al uso de punteros y aunque voy trabajando con ellos, hoy me he topado con una dificultad... tengo una función de tipo estructura que devuelve un puntero pero no soy capaz de trabajar con el resultado...

El código sería así(resumido):

//LA ESTRUCTURA
struct EstructElto {
AnsiString Indice;
AnsiString Valor;
};


//LA FUNCIÓN
EstructElto ProcesaListas(AnsiString Lista){
int long,pos;
AnsiString NombreLista,Aux;
EstructElto *MatrizLista;

... etc etc etc...

MatrizLista = new EstructElto[contador];
for(int i=0;i<x;i++){
long = MatrizLista[i].Valor.Length();
pos = MatrizLista[i].Valor.AnsiPos(":");
MatrizLista[i].Indice = MatrizLista[i].Valor.SubString(0,pos - 1);
MatrizLista[i].Valor = MatrizLista[i].Valor.SubString(pos+1,long - pos);
}
ShowMessage(MatrizLista[1].Valor);
return *MatrizLista;
}



//LA LLAMADA A FUNCIÓN
EstructElto *Puntero;

...etc etc etc ....

Tarifas = Comando(txt_login->Text,txt_pw->Text,"tarifas",1,IdHTTP1);
Puntero = &ProcesaListas(Tarifas);
ShowMessage(Puntero[1].Valor);





Como vereis dentro de la función está el puntero MatrizLista, cuando hago showmessage(MatrizLista[1].Valor) me muestra el valor correctamente
pero en la llamada a dicha función hago ShowMessage(Puntero[1].Valor) y sin embargo no me muestra nada, me da un resultado vacío
¿no se supone que la variable Puntero apunta a MatrizLista tras la llamada a función?

espero que alguien con la cabeza algo mas clara que yo me pueda echar una mano, porque llevo un rato dandole vueltas y no doy con el problema

gracias, un saludo

Última edición por waremovil fecha: 18-08-2007 a las 18:41:43.
Responder Con Cita