亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求問為什么我的程序會奔潰掉

求問為什么我的程序會奔潰掉

慕粉13247635475 2016-09-11 16:04:53
#include<iostream>using namespace std;class MyStack {public: MyStack(int Size); ~MyStack(); bool stackEmpty(); bool stackFull(); void clearStack(); int stackLength(); //char push(char elem); bool push(char elem); bool pop(char &elem); void stackTravel();private: int size; int top; char *pStack;};?MyStack::MyStack(int Size){? size=0; top=0; size = Size; pStack = new char(Size); cout<<"申請"<<size<<"個內存的空間!"<<endl;}MyStack::~MyStack(){ delete []pStack; pStack=NULL;cout<<"delete"<<endl;}bool MyStack::stackEmpty(){ if (top==0) return true; else return false;}bool MyStack::stackFull(){ if(size==top) return true; else return false;}void MyStack::clearStack(){ top = 0;//覆蓋}int MyStack::stackLength(){ return ?top;}bool MyStack::push(char elem){ if(stackFull()){ return false; } pStack[top]=elem; top++; return true;}bool MyStack::pop(char &elem){ ? ? if(!stackEmpty())? ? {? ? ? ? top--;? ? ? ? elem=pStack[top];? ? ? ? ?? ? ? ? return true;? ? }? ? else? ? {? ? ? ? return false;? ? } }void MyStack::stackTravel(){ for (int i = 0;i < top;i++) { cout << pStack[i]; } cout << endl;}int main() { MyStack pStack(5); char elem; char num[5]={'1','2','3','4','5'}; for(int i=0;i<5;i++){ pStack.push(num[i]); } //pStack.push('p'); //pStack.push('p'); pStack.pop(elem); if (pStack.stackEmpty()) { cout << "The stack is empty"<<endl; } if (pStack.stackFull()) { cout << "The stack is full" << endl; } cout << "The stack's length:" << pStack.stackLength() << endl; /*pStack.push('a'); pStack.push('p'); pStack.push('p'); pStack.push('l');*/ //pStack.push('e'); //pStack.stackTravel(); /*pStack.pop(elem); cout << elem << endl; pStack.clearStack();*/ //cout << "The stack's length:" << pStack.stackLength() << endl; return 0;}
查看完整描述

2 回答

?
下雨何

TA貢獻28條經驗 獲得超23個贊

sorry,不懂c

不過大體上了解一點點,要注意變量的聲明和銷毀,另外注意變量類型

c不比php,它是強數據類型,不能簡單隨意的轉換數據類型

c不比java,它對內存的控制比較嚴格,不像java,都叫給虛擬機,不用管這些,同時java也不用考慮指針

建議多了解一點 指針,數據在內存的存放等等

查看完整回答
反對 回復 2016-09-13
?
onemoo

TA貢獻883條經驗 獲得超454個贊

在構造函數中,你想申請一塊連續size個char內存是不是?

pStack = new char(Size);

不過上面這代碼寫錯了,申請一塊連續內存需要在類型后用中括號 [ ]。 你寫成了小括號,這樣只是申請了一個char內存,其初值為size而已。

查看完整回答
反對 回復 2016-09-11
  • 2 回答
  • 0 關注
  • 1469 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號