源代码:
IntList::IntList(int numVals , int val ) {
if (numVals>0){
numberValues=numVals;
values=new int[numVals];
for(int i=0;i<numVals;++i){
values[i]=val;
}
} else
numberValues=0;
}
IntList::IntList(const IntList &il) {
numberValues=il.size();
if(numberValues>0){
values=new int[numberValues];
for(int i=0;i<numberValues;++i){
values[i]=il.values[i];
}
}
}
IntList::~IntList() {
}
这段代码乍一看没有什么问题,在编译器上也不会崩溃,但是在服务器上却会崩溃原因在于:
当numberValues=0时,没有处理values的值。所以IntList b时,b里的values未初始化。后面delete的时候就会出现问题。
解决方法是:
在else语句,当numbervalues=0时,应给values也给予初值。
Values=NULL。
问题就解决了
原文地址:https://www.cnblogs.com/zyd746714868/p/8544716.html
时间: 2024-10-04 17:45:13