這是我的.cpp文件內容:我得到雙倍免費或損壞錯誤,我的類函數
#include <iostream>
#include"1.h"
using namespace std;
Stack:: Stack(){
size=20;
a=new int[size];
top=-1;
}
Stack::Stack (int si){
size=si;
a=new int[si];
top =-1;}
Stack::Stack(Stack& s){
a=new int[s.size];
for(int i=0 ; i<s.size; i++)
a[i]=s.a[i];
size=s.size;
}
Stack::~Stack(){
delete [] a;
}
void Stack::Push(int data){
if(this->isfull())
cout<<"stack is full!\n";
else
a[top++]=data;
}
int Stack::Pop(){
if(this->isempty())
cout<<"stack is empty!\n";
else
return a[top--];
}
bool Stack::isempty(){
if(top==-1)
return true;
else
return false ;
}
bool Stack::isfull(){
if(top==size-1)
return true ;
else
return false ;
}
void Stack::Print(){
for(int i=top ; i>-1 ; i--)
cout<<a[i]<<endl;
}
int main(){
Stack a(3);
a.Push(1);
a.Push(3);
cout<<a.Pop();
a.Push(5);
a.Push(7);
a.Print();
return 0;
}
並運行該程序後,我得到以下錯誤: 錯誤`./1 ':雙免費或腐敗(出):0x000000000240a010 *** 中止(核心傾銷) 和我有複製構造和任何事情,我該怎麼辦?
'1.h'的內容是什麼? – cdhowie
['valgrind'](http://valgrind.org/) – zwol
請編輯您的問題以提供[mcve]。 –