#include<iostream>
#include<stdlib.h>//malloc함수를 사용하기위한 라이브러리 호출
using namespace std;
class stack {
char *stck;
int tos;
int size;
public:
stack(int s);
~stack();
void push(char ch);
char pop();
};
stack::stack(int s)
{
cout << "constructing a stack\n";
tos = 0;
stck = (char *)malloc(s);//s만큼 동적 메모리를 할당하겠다.
if (!stck) {//스택이 없다면
cout << "error";
return;
}
size = s;
}
stack::~stack()
{
free(stck);//free 함수로 메모리 사용해제
}
void stack::push(char ch)
{
if (tos == size)
{
cout << "stack is full";
}
else
stck[tos] = ch;
tos++;
}
char stack::pop()
{
if (tos == 0)
{
cout << "stack is empty";
}
else
tos--;
return stck[tos];
}
int main(void)
{
stack s1(10);
int i;
s1.push('a');
s1.push('b');
s1.push('c');
for (i = 0; i < 3; i++)
{
cout << s1.pop() << endl;
}
}