1. создания пустого стека,
2. проверки стека на пустоту,
3. добавления элемента в стек,
4. извлечение элемента из стека,
5. уничтожения стека.
#include<stdlib.h>;
#include<stdio.h>;
#include<conio.h>;
struct elem
{ int data;
struct elem* next;
};
typedef struct elem elem;
inline void newstack(elem* pup){pup=NULL;};
inline int isempty(elem* pup){return pup==NULL;};
inline void add(elem* pup, int x)
{ elem* qp;
if(isempty(pup)==1)
{ qp=(elem*)malloc(sizeof(elem));
pup=qp;
qp->data=x;
}
else
{ qp=(elem*)malloc(sizeof(elem));
qp->next=pup;
qp->data=x;
pup=qp;
};
};
inline int toget(elem* pup)
{ elem* qp;
int y;
if(isempty(pup)) return 0;
else
{ qp=pup;
pup=pup->next;
y=qp->data;
free(qp);
};
return y;
};
void kill(elem* pup)
{ elem* qp;
if (isempty(pup)==1) return;
while(pup!=NULL)
{ qp=pup;
pup=pup->next;
free(qp);
};
};
void main()
{ int i;
elem* pup;
clrscr();
newstack(pup);
printf("%d",isempty(pup));
add(pup,5);
printf("%d",isempty(pup));
kill(pup);
}
Вылетает сразу же при запуске, в чем причина?