Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1289 connectés 

  FORUM HardWare.fr
  Programmation

  [C] - Tableaux de pointeurs et liste chainees (ENCORE UN PROB)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] - Tableaux de pointeurs et liste chainees (ENCORE UN PROB)

n°164139
SquiiiD
be cool !
Posté le 23-06-2002 à 18:32:21  profilanswer
 

Voici mon code, j'ai mis un commentaire ou se trouve l'erreur, il dit acces violation at adress machin
et je ne comprend pas pq!! Tout ce que je veux faire c copier l'adresse pointee deja enregistrée dans un tableau de pointeurs TabPtr dans pCourant et il me dit que c pas bon, pourtant je n'ai pas fait de free() ni rien  
je pige po, si qqun a le courage de matter mon code ca serait cool tkx
 
 

Code :
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4. #include <malloc.h>
  5. int i=0, NbList=0;
  6. char InputNom[25];
  7. char InputInsNom[25];
  8. char QueFaire;
  9. struct etudiants
  10. {
  11.    char nom[25];
  12.    etudiants * pSuivant;
  13.    etudiants * pPrecedant;
  14.    } *pCourant, *pFree;
  15. etudiants * TabPtr[15];
  16. void main()
  17. {
  18. while(strcmp("fin",InputNom)!=0)
  19. {
  20.    printf("Liste n°%d :\n\n",i+1);
  21. pCourant=(etudiants*)malloc(sizeof(struct etudiants));
  22. pCourant->pSuivant=NULL;
  23.    pCourant->pPrecedant=NULL;
  24.    /* Enregistrement de l'adresse de la liste chainee das le tableau de pointeur */
  25.    TabPtr[i]=pCourant;
  26. while(strcmp("finliste",InputNom)!=0 && strcmp("fin",InputNom)!=0)
  27.  {
  28.    scanf("%s",InputNom);
  29.       if(strcmp("finliste",InputNom)!=0 && strcmp("fin",InputNom)!=0)
  30.        {
  31.     /* Enregistrement dans la liste chainee */
  32.     strcpy(pCourant->nom,InputNom);
  33.     pCourant->pSuivant=(etudiants*)malloc(sizeof(struct etudiants));
  34.          pCourant->pSuivant->pPrecedant=pCourant;
  35.     pCourant=pCourant->pSuivant;
  36.     pCourant->pSuivant=NULL;
  37.          }
  38.    }
  39. i=i+1;
  40.    if(strcmp("fin",InputNom)!=0) strcpy(InputNom,"lol" );
  41.    }
  42. clrscr();
  43. printf("\n\nFin de programme! Appuyez sur une touche pour afficher les liste entree...\n\n" );
  44. getch();
  45. NbList=i;
  46. i=0;
  47. while(i!=NbList)
  48. {
  49.    printf("\n\nListe n°%d sur %d :\n",i+1,NbList);
  50.    pCourant=TabPtr[i];
  51. while(pCourant->pSuivant!=NULL)
  52.  {
  53.    printf("\n- %s",pCourant->nom);
  54.       pFree=pCourant;
  55.    pCourant=pCourant->pSuivant;
  56.       // free(pFree);
  57.    }
  58.    i=i+1;
  59.    }
  60. printf("Que voulez vous faire maintenant? q=Quitter i=inserer un enregistrement s=supprimer un enregistrement. " );
  61. QueFaire=getch();
  62. switch(QueFaire)
  63. {
  64.    case 'q': break;
  65.    case 'i': {
  66. printf("Quel numéro de liste?" );
  67.    scanf("%d",i);
  68.    pCourant=TabPtr[i-1];  /********* ICI ERREUR INCOMPREHENSIBLE ***********/
  69. printf("Apres quel elements? Si l'element n'existe pas l'enregistrement sera ajouté a la fin." );
  70.    scanf("%s",InputInsNom);
  71.    while(pCourant->pSuivant!=NULL && strcmp(pCourant->nom,InputInsNom)!=0)
  72.     {
  73.       pCourant=pCourant->pSuivant;
  74.       }
  75.    if(pCourant->pSuivant==NULL)
  76.     {
  77.       pCourant->pSuivant=(etudiants*)malloc(sizeof(struct etudiants));
  78.       pCourant->pSuivant->pPrecedant=pCourant;
  79.       pCourant=pCourant->pSuivant;
  80.       pCourant->pSuivant=NULL;
  81.       strcpy(pCourant->nom,InputInsNom);
  82.       pCourant->pPrecedant->pSuivant=pCourant;
  83.       printf("\nelement inséré: %s\nElement precedant: %s",pCourant->nom, pCourant->pPrecedant);
  84.       }
  85.    }
  86.    break;
  87.    }
  88. getch();
  89. }


Message édité par SquiiiD le 23-06-2002 à 18:33:30
mood
Publicité
Posté le 23-06-2002 à 18:32:21  profilanswer
 

n°164151
apolon34
Vive Linux!!
Posté le 23-06-2002 à 18:58:26  profilanswer
 

scanf c'est &i qu'il faut lui filer!

n°164160
SquiiiD
be cool !
Posté le 23-06-2002 à 19:11:58  profilanswer
 

ha mais oui !!!!!!!!!!!!!!!!!!!!!!!!!!
la bete erreur que j'ai faite  :D  
merci !!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C] - Tableaux de pointeurs et liste chainees (ENCORE UN PROB)

 

Sujets relatifs
[C] - Tableaux de pointeurs et liste chainees ( résolu ! )[VBA] Comment créer et remplir une liste toute conne ?
tableaux associatifs???[ACCESS] prob sur la fermeture d'un etat
[C] Les structures ... tableaux .. le mien marche po ...bon je c pas ou foutre ça : prob installation d'un phpbb
Javascript : un lien pour afficher une image parmi une liste d'images 
Plus de sujets relatifs à : [C] - Tableaux de pointeurs et liste chainees (ENCORE UN PROB)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR