Resultados 1 al 10 de 10

Tema: Estructura de puntero por parametro...

  1. #1 Estructura dinamica por parametro... 
    Avanzado
    Fecha de ingreso
    Sep 2003
    Ubicación
    Malaga (España !)
    Mensajes
    191
    Descargas
    0
    Uploads
    0
    Hola a todos !

    A ver si alguien pudiese ayudarme...
    Quiero pasar una estructura de puntero por parametros y que guarde la posicion de los punteros usados o elegidos.

    He estado buscando y solo encuentro ejemplos y paginas con punteros normales pero no de estructura:

    Asias ^^ !
    Salu2 !
    Última edición por Dwarft; 15-07-2004 a las 10:23
    Dwarft
    Citar  
     

  2. #2  
    Medio
    Fecha de ingreso
    Jan 2004
    Ubicación
    South from Granada
    Mensajes
    61
    Descargas
    0
    Uploads
    0
    Hola,
    creo que no entiendo bien... cuando dices "estructura de puntero por parámetros" ¿te refieres a pasar como parámetro un puntero a estructura en una función? Suponiendo que lo quieras en C/C++ puedes mirar aquí

    Iba a intentar explicarlo, pero que el tipo del link lo hace bastante mejor que yo

    Salud y suerte
    Citar  
     

  3. #3  
    Moderador HH
    Fecha de ingreso
    Dec 2001
    Ubicación
    España
    Mensajes
    834
    Descargas
    2
    Uploads
    0
    Dwartf tio q mal t explicas xD, a ver si nos aclaras un poco + tu duda y el lenguaje en el que estas programando , asi quizas podamos ayudarte :P

    Quiero pasar una estructura de puntero por parametros y que guarde la posicion de los punteros usados o elegidos.
    Estructura
    struct Direcciones
    {
    char* puntero;
    };

    Funcion:
    void mi_funcion(Direcciones parametro)
    {
    char* aux;
    aux=parametro.puntero;
    }

    ¿Te refieres a algo de eso?¿?Sino aclaranoslo y alguno responderemos.

    Un saludo,
    KaoS
    Citar  
     

  4. #4  
    Avanzado
    Fecha de ingreso
    Sep 2003
    Ubicación
    Malaga (España !)
    Mensajes
    191
    Descargas
    0
    Uploads
    0
    Perdonadme, es que esto lo postee desde clase y no pude hacerlo bien.

    Se trata de lenguaje C para el compilador Rhide. (Digo el compilador porque este es bastante basico y hay muchas cosas que no las hacen bien).

    Lo que digo es por ejemplo, pasar un puntero que este apuntando a una variable que tiene valor 100 por ejemplo, pues al entrar en la funcion si se modifica a 99 que salga de la funcion 99 y no 100.
    Lo he intentado de la manera siguiente:
    /*Declaramos puntero y funciones*/
    struct tipo
    { int v;
    struct tipo *s;
    };
    struct tipo *i,*a,*w;
    void meter_dato(struct tipo *i,struct tipo *a,struct tipo *w);
    void listar_dato(struct tipo *i,struct tipo *a,struct tipo *w);
    /*Llamamos funciones*/
    meter_dato(*i,*a,*w);
    listar_dato(*i,*a,*w);
    /*Despues se desarrollarian las funciones*/
    De esta manera deberia de funcionar, no me da ningun error al compilar pero no rula.

    Salu2 !
    Última edición por Dwarft; 15-06-2004 a las 01:47
    Dwarft
    Citar  
     

  5. #5  
    Avanzado
    Fecha de ingreso
    Nov 2002
    Ubicación
    Ciudad de México
    Mensajes
    297
    Descargas
    0
    Uploads
    0
    Bueno, este ejemplo es sencillo y hace lo que dices:

    void mifuncion(int *a) {
    *a = 99;
    }

    int main() {
    int a=100;

    mifuncion(&a);
    return 0;
    }

    Eso con un entero, ahora con una estructura:

    typedef struct {
    int val;
    } estructura;

    void mifuncion(estructura *e) {
    e->val = 99;
    }

    int main() {
    estructura est;

    est.val = 100;

    mifuncion(&est);

    return 0;
    }

    Espero te sirva de algo.
    Scar_T
    Citar  
     

  6. #6  
    Avanzado
    Fecha de ingreso
    Sep 2003
    Ubicación
    Malaga (España !)
    Mensajes
    191
    Descargas
    0
    Uploads
    0
    El typedef para que sirve ?? No le has puesto nombre a la estructura, no ??

    Salu2! Voy a probarlo, pero es como intente hacerlo mas o menos jeje
    Asias ^^
    Dwarft
    Citar  
     

  7. #7  
    Moderador HH
    Fecha de ingreso
    Dec 2001
    Ubicación
    España
    Mensajes
    834
    Descargas
    2
    Uploads
    0
    Dwartf el typedef es como su nombre indica para definir un tipo de dato y asi te ahorras poner struct cada vez q declares el tipo y tal, se utiliza bastante, ade+ si tiene nombre la estructura:

    typedef struct {
    int val;
    } estructura;

    (estructura es el nombre)

    Vnga, spero haberte aclarado la duda.

    Saludos,
    KaoS
    Citar  
     

  8. #8  
    Avanzado
    Fecha de ingreso
    Sep 2003
    Ubicación
    Malaga (España !)
    Mensajes
    191
    Descargas
    0
    Uploads
    0
    Bueno, vuelvo con esto otra vez, la ultima vez lo deje...
    Os voy a poner un codigo:
    Código:
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #define TAM 50
    
    void anadir(struct persona *i,struct persona *w,struct persona *a);
    void listar(struct persona *i,struct persona *w);
    
    main()
    { struct persona
      { char n[TAM];
        int e;
        struct persona *sig;
      };
      struct persona *i=NULL,*w,*a;
      char l;
    
      while(l != 's')
      { l=0; printf("\n MENU");
        printf("\nAñadir ]1[");
        printf("\nListar ]2[");
        printf("\nSalir  [s]");
        printf("\nOpcion: ");
                          scanf("%s",&l);
    
        switch(l)
        {
          case '1': anadir(**i,**w,**a); break;
          case '2': listar(**i,**w);     break;
        }
      }
    }
    
    void anadir(struct persona *i,struct persona *w,struct persona *a)
    {
      if(i == NULL)
      { i = (persona *)malloc(sizeof(persona));
        printf("\nNombre: ");
                          scanf("%s",&i->n);
        printf("\nEdad: ");
                          scanf("%i",&i->e);
        i->sig=NULL;
        a=i;
      }
      else
      { w=NULL;
        w = (persona *)malloc(sizeof(persona));
        printf("\nNombre: ");
                          scanf("%s",&w->n);
        printf("\nEdad: ");
                          scanf("%i",&w->e);
        w->sig=NULL;
        a->sig=w;
        a=w;
      }
    }
    Bien, probarlo y me decis, debe de dar error tal y como esta el codigo pero es que no encuentro la manera de pasar la estructura dinamica por parametros.
    Estoy utilizando ahora el Dev-C++ 4

    Salu2 !
    Gracias ^^
    Dwarft
    Citar  
     

  9. #9  
    Iniciado
    Fecha de ingreso
    Jul 2004
    Ubicación
    Cadifornia
    Mensajes
    24
    Descargas
    0
    Uploads
    0
    Se ve que no le prestaste mucha atencion a Swar_t xD.

    Mandale a la función la dirección de memoria de ese puntero con el &, y el doble puntero, en los parametros que recibe la función **.
    anadir(&i,&w,&a);
    void anadir(struct persona **i,struct persona **w,struct persona **a)

    con el consecuente tratamiento dentro de la función.

    y un consejillo es que antes del while inicialices la variable l a cualquier cosa distinta de 's' (no estoy seguro si se inicializa solo a algo).

    Otra cosilla que veo es que utilizas scanf () %s es para cadenas (por los que puedes machacar los datos de la memoria utilizando un char ¿no?) , con una variable de tipo char (l) utiliza mejor la función getch() o getchar().

    No he analizado el codigo pero a simple vista es lo que veo.
    Citar  
     

  10. #10  
    Avanzado
    Fecha de ingreso
    Sep 2003
    Ubicación
    Malaga (España !)
    Mensajes
    191
    Descargas
    0
    Uploads
    0
    Vale, lo de Swar_t no lo habre comprendido bien, gracias por la aclaracion willamette.

    Lo del scanf... Yo suelo utilizar el fgets(char,tamaño,stdin); pero en Dev-C++ no funciona el stdin, no se porque.

    Salu2 !
    Asias ^^
    Dwarft
    Citar  
     

Temas similares

  1. Respuestas: 3
    Último mensaje: 01-11-2008, 18:43
  2. parametro de antena
    Por jesulito en el foro DIGITAL+
    Respuestas: 0
    Último mensaje: 13-07-2007, 00:01
  3. tengo el puntero de raton locoooooOOOO
    Por jandrito3 en el foro WINDOWS
    Respuestas: 10
    Último mensaje: 27-09-2006, 23:21
  4. Parámetro $CHICAGO$ en archivos INF
    Por Sid Lekster en el foro OFF-TOPIC
    Respuestas: 0
    Último mensaje: 10-04-2004, 02:28
  5. Cuadrito Negro en vez de Puntero
    Por Fito en el foro HARDWARE
    Respuestas: 5
    Último mensaje: 15-12-2002, 02:46

Marcadores

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •