1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| struct test
{
int t;
short *tableau;
};
typedef struct test *BIG;
static BIG test_depile( pile p )
{
if ( pilevide(p) ) erreur("trop d'opérateurs");
return depile(p); // erreur : return makes pointer from integer without a cast
}
--------------------------------
struct descripteur_de_pile {
int taille;
BIG* vect;
int sommet;
};
struct descripteur_de_pile * cree_pile( void )
{
struct descripteur_de_pile * self = malloc(sizeof(struct descripteur_de_pile));
self->taille = TAILLE_INITIALE; /* doit être > 0 */
self->vect = malloc(self->taille*sizeof(BIG));
self->sommet = 0;
return self;
}
BIG depile( struct descripteur_de_pile * self )
{
assert(self->sommet > 0);
return self->vect[--self->sommet];
} |