简单栈的操作
#include<iostream>#include<conio.h>
using namespace std;
class Stack {
int *base,*top;
public:
void initstack(Stack s){
s.base=new int[10];
if(! s.base) exit(0);
s.top=s.base=0;
}
void push(Stack p,int n){
if(p.top-p.base>=10) cout<<"栈溢出!"<<endl;
else
{ *p.top++=n;
cout<<*(p.top--);}
}
void pop(Stack s){
if(s.top==s.base) cout<<"空栈"<<endl;
else {int e= * --s.top; cout<<"栈顶元素为:"<<e<<endl;}
}
};
int main()
{
Stack s;
s.initstack(s);
s.push(s,10);
s.push(s,12);
s.push(s,14);
s.pop(s);
getche();
}
内存不可读,是哪儿出了问题了,看了好办天没看出什么东西来,请大家帮忙~~