• Lunes 29 de Abril de 2024, 21:40

Autor Tema:  Función Que Devuelve Un Puntero  (Leído 953 veces)

Krams

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Función Que Devuelve Un Puntero
« en: Miércoles 19 de Diciembre de 2007, 21:54 »
0
Hoal buenas,
estoy intentando crear una función que me devuelva la dirección de memória de un puntero de un tipo que defino. Me da error, y no se porqué... A ver si alguien me echa una mano.

Saludos  y gracias.

Código: Text
  1. typedef struct R_Alumne
  2. {
  3.   char nom[20];
  4.   int grup;
  5.   float nota;
  6.   struct R_Alumne *seguent;
  7. }alumne;
  8.  

Código: Text
  1. alumne* BuscarAlumne(alumne *node, char *nom[20])
  2. {
  3.   alumne *aux;
  4.  
  5.     if (node!=NULL)
  6.   {
  7.     aux=node;
  8.     while ((strcmp(aux->nom, *nom)!=0) && (aux->seguent != NULL))
  9.     {
  10.       aux=aux->seguent;
  11.     }
  12.  
  13.     if ((strcmp(aux->nom, *nom)==0))
  14.       return aux;
  15.     else
  16.       printf("\nERROR: No s'ha trobat el alumne");
  17.   }
  18.   else
  19.     printf("\nERROR: No s'han registrat alumnes");
  20.  
  21. Continua();
  22. return NULL;
  23. }
  24.  

Loloto

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Función Que Devuelve Un Puntero
« Respuesta #1 en: Miércoles 26 de Diciembre de 2007, 19:10 »
0
hola Krams
primero que nada seria bueno que tambien incluyeras una descripcion del error que te arroja.

Le hice unos pequeños cambios a tu codigo y funciona perfecto.
eso de la lista de alumnos enlazada no lo entendi muy bien.
Código: Text
  1.  
  2. // pp01.cpp : Defines the entry point for the console application.
  3. //
  4.  
  5. #include "stdafx.h"
  6. #include <windows.h>
  7. #include <stdio.h>
  8.  
  9. int main(int argc, char* argv[])
  10. {
  11.   alumne *pp, *ppdevu;
  12.  
  13.   pp = (alumne*)malloc(sizeof(R_Alumne));
  14.  
  15.   strcpy(pp->nom, "pp01");
  16.   pp->grup = 1;
  17.   pp->nota= 7;
  18.   pp->seguent = NULL;
  19.  
  20.   ppdevu = BuscarAlumne(pp, "pp01");
  21.   printf(">%s< %d,%d", ppdevu->nom, ppdevu->grup, ppdevu->nota);
  22.   free(pp);
  23.   return 0;
  24. }
  25.  
  26.  
  27. alumne* BuscarAlumne(alumne *node, char *nom)
  28. {
  29.   alumne *aux;
  30.  
  31.    if (node!=NULL)
  32.   {
  33.     aux=node;
  34.     while ((strcmp(aux->nom, nom)!=0) && (aux->seguent != NULL))
  35.     {
  36.       aux=aux->seguent;
  37.     }
  38.  
  39.     if ((strcmp(aux->nom, nom)==0))
  40.       return aux;
  41.     else
  42.       printf("\nERROR: No s'ha trobat el alumne");
  43.   }
  44.   else
  45.     printf("\nERROR: No s'han registrat alumnes");
  46.  
  47. return NULL;
  48. }
  49.