Foros del Web » Programación para mayores de 30 ;) » C/C++ »

puntero dentro de struct! [URGENTE!]

Estas en el tema de puntero dentro de struct! [URGENTE!] en el foro de C/C++ en Foros del Web. Hola! me ayudan?? xD bueno, veran... tengo una struct dentro de la cual tengo 2 variables enteras, solo qe 1 de ellas es un puntero, ...
  #1 (permalink)  
Antiguo 23/09/2010, 20:51
Avatar de douglasloza  
Fecha de Ingreso: abril-2008
Ubicación: Santa Tecla, El Salvador, El Salvador
Mensajes: 35
Antigüedad: 16 años, 7 meses
Puntos: 0
Exclamación puntero dentro de struct! [URGENTE!]

Hola!
me ayudan?? xD
bueno, veran...
tengo una struct dentro de la cual tengo 2 variables enteras, solo qe 1 de ellas es un puntero, y necesito mediante una funcion ingresar datos en la struct, y mediante otra funcion mostrar los datos antes ingresados...
aqui el programa...
Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. struct polinomio{
  5.        int grado;
  6.        int *coeficiente;
  7.        };
  8.  
  9. int ingreso(polinomio *);
  10. int mostrar(polinomio);
  11. int main(){
  12.     polinomio ingresar;
  13.     ingreso(&ingresar);
  14. system("PAUSE");
  15.     mostrar(ingresar);
  16.     system("PAUSE");
  17.     return 0;
  18. }
  19.  
  20. int ingreso(polinomio *valores){ //AQUI HAGO EL INGRESO DEL GRADO DEL POLINOMIO
  21.                                  //E INGRESO LOS COEFICIENTES, ESO TODO BIEN!
  22.  cout<<"Ingrese el grado del polinomio ";
  23.     cin>>valores->grado;
  24.     int matriz[valores->grado+1];
  25.     for(int i=0;i<=valores->grado;i++){
  26.                                      
  27.                                       cout<<"Ingrese el valor para "<<i+1;
  28.                                       cin>>matriz[i];
  29.             }
  30.             valores->coeficiente=matriz; /*paso de los coeficientes al puntero de estructura, hago esto, porq en el ejercicio la struct debe tener un puntero que apunte a la matriz de los coeficientes*/
  31. return 0;  
  32. }
  33.  
  34.  
  35. /*ES AQUI DONDE TENGO QUE MOSTRAR LO QUE YA INGRESE ANTES, PERO PARA
  36. ESO NECESITO OBTENER LO QUE ESTA EN EL PUNTERO COEFICIENTE DE STRUCT, PERO NO SE COMO MANDARLO A LLAMAR!! NO TENGO IDEA DE QUE HACER!*/
  37. int mostrar(polinomio valor){
  38.                      
  39.       for(int j=0;j<=valor.grado;j++){
  40.               cout<<*valor.coeficiente<<endl;
  41.               valor.coeficiente++;
  42.               }

ok.. se fijan en la ultima funcion, necesito imprimir lo que tiene ingresar.coeficiente, pero si lo hago me imprime valores "tontos", es decir valores que los saca de la nada, no me imprime los valores que yo ya he ingresado...
desde ya...mil gracias por toda su ayuda!! C:
  #2 (permalink)  
Antiguo 24/09/2010, 02:27
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: puntero dentro de struct! [URGENTE!]

Hola,

Código C++:
Ver original
  1. int ingreso(polinomio *valores){
  2. ...
  3.     int matriz[valores->grado+1];
  4. ...
  5.     valores->coeficiente=matriz; /*paso de los coeficientes al puntero de estructura, hago esto, porq en el ejercicio la struct debe tener un puntero que apunte a la matriz de los coeficientes*/
  6. ...

La variable matriz es local a la función ingreso, esa variable desaparece o se vuelve inválida al terminar la función, resultando en un puntero a una dirección de memoria desconocida o inválida. Lo que tienes que usar es memoria dinámica, para que ese espacio de memoria se mantenga permanentemente aun cuando salga de la función.

Código C++:
Ver original
  1. int * matriz = new int[valores->grado+1];

Al terminar de usar valores->coeficiente (cuando ya no lo vayas a utilizar mas en todo el programa) debería de usarse el operador delete[].

Código C++:
Ver original
  1. delete[] valores->coeficiente;

Saludos,
  #3 (permalink)  
Antiguo 26/09/2010, 19:59
Avatar de douglasloza  
Fecha de Ingreso: abril-2008
Ubicación: Santa Tecla, El Salvador, El Salvador
Mensajes: 35
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: puntero dentro de struct! [URGENTE!]

mil gracias amigo! me has salvado la vida ^^...
GRACIAS!!!

Etiquetas: puntero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:11.