자료구조 스택인데요..

main function을 printf로 바꿔야하는데

어느부분이 메인 함수인가요?

ㅠㅠㅠㅠ


#include <stdio.h>

#include <malloc.h>


typedef struct _item

{

  char * name;

  unsigned int price;

}item;

typedef struct _list

{

  item * item_array;

  int current;

  int size;

}list;


list * makestack(int size);

int isfull(list *p);

void push(list *p, item item1);

void pop(list *p); 


int main (void)

{

  item item1; 

  list *p; 

  list *q;

  int p_size = 10;

  int q_size = 50;

  p = makestack(p_size);

  q = makestack(q_size);

  


  for (int i = 0; i < p_size; i ++)//초기값은0 p_size보다 크면 계속 증가

  {

   if ( i % 2)

   {

   item1.name = "banana"; // even index: 0, 2, 4, ...

   item1.price = 2000 + i * 100;

   push(p, item1);

 

   }

   else     // odd index 1, 3, 5,

   {

   item1.name = "apple"; // even index: 0, 2, 4,

   item1.price = 4000 + i * 100;

   pop(p, item1);


   }

  }

  for (int i = 0; i < p_size; i ++)

  {

   printf("p->item_array[%d].name is %s n", i, p->item_array[i].name);

   printf("p->item_array[%d].price is %d n", i, p->item_array[i].price);

  }


  

  pop(p);

  pop(q);

  getchar();

}



list * makestack(int size)

{

  list *p;

  p = (list *) malloc(sizeof(list) * 1);

  p->item_array = (item *) malloc(sizeof(item) * size);

  p->current = -1;

  p->size = size;

  return p;

}

int isfull(list *p)

{

 if(p->current == (p->size) -1)

  return 1;

 else

  return 0;

}

void push(list *p, item item1)

{

 if(isfull(p))

  return;

 p->current++;

 p->item_array[p->current] = item1;

}

void pop(list *p)

{

  free(p->item_array);

  free(p); 

}