Probleme File sans pointeur

Probleme File sans pointeur - C - Programmation

Marsh Posté le 12-02-2011 à 18:20:27    

bonjour à tous,
 
Voila j'ai un problème, je tente de faire une file sans pointeur !  
Voici mon algo
 
je n'arrive pas a ajouter( empiler ) un élément, merci de votre aides !  
 
 
#include <stdio.h>
#include <stdlib.h>
 
 
 
typedef struct File File;
struct File
{
 
    int tab[10]; //le tableau
    int tete;  //lindice de la tete
    int queue;  //lindeice de la queue
};
 
File init(void)
{
    struct File f;
    int i ;
    f.tete = 0;
    f.queue = 0;
    for (i=1; i<10; i++)
    {
        f.tab[i] = 0;
    }
    return f;
 
}
 
 
int vide(File f)
{
    return (f.queue == f.tete);
}
 
 
int pleine(File f)
{
    return(f.queue == 9);
}
 
 
File ajouter(File f, int Element)
{
 
 
    f.tab[f.queue] = Element;
    f.queue = f.queue + 1;
 
      return f;
}
 
/*
stuct File depiler (struct File f )
{
 
    for (i=1;i<10;i++)
    {
                T[i] = T[i+1];
    }
    return f;
}
*/
 
int main()
{
    struct File pipou ;
    int Element;
    int i;
 
 
    pipou=init();
 
    // scanf("%d",&Element);
  //pipou=ajouter(pipou,Element);
  printf("%d",&pipou);
            printf("\n\n" );
 
 
//pipou = ajouter(pipou,3);
   /* for (i=1; i<11; i++)
    {
        printf("%d", pipou.tab[i]);
    }
*/
 
}

Reply

Marsh Posté le 12-02-2011 à 18:20:27   

Reply

Marsh Posté le 12-02-2011 à 19:02:52    

Si tu n'utilises pas de pointeur c'est une copie qui va être faite à chaque fois.

Reply

Marsh Posté le 12-02-2011 à 19:53:35    

Hello, merci pour ta réponse.
Le professeur nous as dit que c'était possible.
Quelques camarades ont reussi sans pointeur !  
 

Reply

Marsh Posté le 13-02-2011 à 01:05:15    

Oui oui c'est possible, c'est juste lent, error prone et pas du tout dans la philosophie du C. Ensuite si c'est ça que tu veux faire, pas de soucis. :)
 
Sinon le problème que tu as je pense c'est que quand tu itères sur tab tu commences toujours l'offset à 1, il faut commencer à 0 pour lire la première case.
Vu que tu initialises queue à 0 (et c'est très bien), tu pushes ton premier élément à l'offset 0.


Message édité par regexp42 le 13-02-2011 à 01:05:39
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed