Cela fait quelques années que j'ai plus codé en C donc ma mémoire est encore un peu défaillante... en considérant ma pile définie ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
struct _b_stack
{
   struct _b_stack * p_next;
   void * p_data;
};
 
typedef struct _b_stack BStack;
et mon code de test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
#include <stdio.h>
#include <stdlib.h>
 
#include "../../../Blib.h"
 
 
void print_stack (void * p_data, void * p_user_data)
{
   BStack * p = (BStack *) p_data;
 
   printf ("my_stack : %d\n",
           (int) p->p_data);
}
 
 
int main (void)
{
   BStack * my_stack = NULL;
   int i = 0;
 
 
   my_stack = b_stack_new ();
 
   for (i = 0; i < 10; i++)
      my_stack = b_stack_push (my_stack, (void *) i);
 
   b_stack_foreach   (my_stack, print_stack, NULL);
   b_stack_free      (my_stack);
 
 
   return EXIT_SUCCESS;
}
J'ai un petit soucis au niveau de mon dernier argument de printf dans la fonction print_stack
C:\Projects\BEngine\BLib\bin\Debug\BLib_test_stack\main.c|12|error: dereferencing pointer to incomplete type|
J'ai beau chercher mais il me semble que j'ai bon non ? Veuillez me raffraichir un peu la mémoire