A ver los que saben c más que yo...

Tema en 'Off topic' comenzado por Antonio, 24 de Junio de 2008.

  1. Yo tengo una lista en la que tengo que meter dni y nombre por ejemplo. ordenada por dni como campo clave.
    hago la estructura como esta
    typedef struct _nodo{
    int dni
    char nombre [20];
    struct _nodo*siguiente;
    }tiponodo;
    typedef tiponodo *pnodo;
    typedef tiponodo *Lista;

    pongo las funciones que me hacen falta y pasö a la funcion principal
    main
    la cuestión es si yo aqui pido un dni y un nombre de usuario, si se lo puedo pasar a la función insertar mediante esta forma
    insertar(&lista, dni,nombre);
    pero claro, luego en la función insertar, cómo reservo memoria para dos elementos?
    void insertar(Lista *lista, int dni, char nombre){
    mi duda está aqui, cómo reservo yo memoria para que almacenen dos datos pasados a esta función.
    creo el nodo
    pnodo nuevo, anterior;
    nuevo=(pnodo)malloc sizeof(tipoNodo));
    nuevo->valor=dni;
    nuevo->nombre=nombre;
    ESTO ÚLTIMO ESTARÍA BIEN?????




    SALUDOS CORDIALES!!!!
     
  2. Disculpa, pero como verás en la portada del foro y del portal este es el mayor sitio bara los amantes de la bateríoa en HABLA HISPANA.

    Así que te agradeceríamos que hablases en castellano para que todos te entendamos.

    Un saludo cordial del equipo de moderación y administración de BATACAS.





















    :D
     
  3. agregame al msn y te lo intento resolver que el jueves tengo examen de eso
     
  4. ejem ejem, no tengo nada más que decir...





    que nooooo que es bromaaaa! ojalá pudiera ayudarte pero tengo tostado el cerebro de tanto soldar y no puedo pensar ahora :baile:
     
  5. luego me llamarás como la otra noche y me dirás que te sientes solo y con ganas de rabo..., y yo como un tonto picaré.
     
  6. Eso es una lista enlazada, no?

    Uf, hace un montón que no hago nada en C, pero si no recuerdo mal malloc devuelve un puntero a la dirección de memoria que estás reservando, así que debería bastar con nuevo = malloc (sizeof (tipoNodo)); , no necesitas hacer un casting porque "nuevo" ya es de tipo *pnodo.

    Claro que ahora mismo no recuerdo si al declarar

    pnodo nuevo, anterior;

    tienes que volver a declararlas como punteros o no

    pnodo *nuevo, *anterior;

    (que me da que no)

    Y por supuesto recuerda liberar esa memoria cuando ya no se utilice usando free(nuevo); , que si no te catean :D

    Joder, esto de la programación se ve que no puede dejarse xD
     

Comparte esta página