为了账号安全,请及时绑定邮箱和手机立即绑定

MyStack *pStack=new Mystack(5);出错

#include <iostream>
#include "MyStack.h"
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) 
{
	MyStack *pStack=new MyStack(5); 
	
	if(pStack->stackEmpty())
	{
		cout<<"kong"<<endl;
	}
	else
	{
		cout<<"mei kong"<<endl;
	}
		if(pStack->stackFull())
	{
		cout<<"man"<<endl;
	}
    else
	{
		cout<<"mei man"<<endl;
	}
	delete []pStack;
	pStack=NULL;
	return 0;
}

class MyStack
{
	public:
		MyStack(int size);
		~MyStack();
		bool stackEmpty();//Åпՠ
		bool stackFull();//ÅÐÂú 
		void clearStack();//Çå¿Õ 
		int stackLength();//ÔªËظöÊý 
		bool push(char elem);//ÈëÕ» 
		bool pop(char &elem);//³öÕ» 
		void stackTraverse(bool isFromButtom);//±éÀú 
	private:
		char *m_pBuffer;
		int m_iSize;
		int m_iTop;
		
};


#include "MyStack.h"
#include <iostream>
using namespace std;


MyStack::MyStack(int size)
{
	m_iSize=size;
	m_pBuffer=new char[m_iSize];
	m_iTop=0;
}
MyStack::~MyStack()
{
	delete []m_pBuffer;
	m_pBuffer=NULL;
}
bool MyStack::stackEmpty()
{
	if(0==m_iTop)
	{
		return true;
	}
	else
	{
		return false;
	}
}
bool MyStack::stackFull()
{
	if(m_iSize==m_iTop)
	{
		return true;
	}
	else
	{
		return false;
	}
}
void MyStack::clearStack()
{
	m_iTop=0;
}
int MyStack::stackLength()
{
	return m_iTop;
}
bool MyStack::push(char elem) 
{
	if(!stackFull())
	{
	    m_pBuffer[m_iTop]=elem;
	    m_iTop++;
	    return true;
	}
	else
	{
		return false;
	}
	
}
bool MyStack::pop(char &elem)
{
	if(!stackEmpty())
	{
	    m_iTop--;
	    elem=m_pBuffer[m_iTop];
	    
	    return true;
	}
	else
	{
		return false;
	}
}
void MyStack::stackTraverse(bool isFromButtom)
{
	
	if(isFromButtom)
	{
    	for(int i=0;i<m_iTop;i++)
    	{
	    	cout<<m_pBuffer[i]<<endl;
    	}
	}
	else
	{
		for(int i=m_iTop-1;i>=0;i--)
     	{
	        cout<<m_pBuffer[i]<<endl;
	    }
	}
	
}


正在回答

2 回答

最后应该写成delete pStack;,

我看你写成delete []pStack;        

看来你和我一样,一开始以为这个是五个长度的数组了所以加了[]

试试吧,我改过这个就对了

1 回复 有任何疑惑可以回复我~

这个问题我不知道,可是我能问一个小白问题嘛,你们平常用什么软件写代码与运行啊?。。。

0 回复 有任何疑惑可以回复我~
#1

240173099 提问者

VS 2015
2016-05-02 回复 有任何疑惑可以回复我~
#2

240173099 提问者

DVE C++
2016-05-02 回复 有任何疑惑可以回复我~
#3

qq_Dullahan_1 回复 240173099 提问者

*pstack是实例化对,C++有两方式实例化对象,一种是NWE另一种是类名 变量名,new实例化申请内存最后有删除的*P,堆实例化调用对象.方法名,stack实例化对象->方法名,
2016-07-10 回复 有任何疑惑可以回复我~
#4

qq_Dullahan_1 回复 240173099 提问者

MyStack是一个类,你的源代码全部贴出来了吗
2016-07-10 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

MyStack *pStack=new Mystack(5);出错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信