小编The*_*Boe的帖子

malloc():内存损坏(快速)错误C++

我在C++工作.我正在研究一种方法来改变堆栈的最大容量,我对我得到的错误感到困惑.以下是我的方法.

void Stack::setCapacity(unsigned newCapacity){
if(newCapacity< this->getSize()){
    throw StackException("setCapacity()", 
    "the size is larger than the desired capacity");
} else {
    if(newCapacity != myCapacity){
        Item * tempArray = new Item[newCapacity];
        if(newCapacity < myCapacity){
            for(unsigned i=0; i<newCapacity;i++){
                tempArray[i] = myArray[i];
            }
        } else if (newCapacity > myCapacity) {
            for(unsigned i=0; i<myCapacity; i++){
                tempArray[i] = myArray[i];
            }
        }
        for(unsigned i=0; i<newCapacity; i++){
            myArray[i] = tempArray[i];
        }
        delete tempArray;
    }
    myCapacity = newCapacity;
} 
}
Run Code Online (Sandbox Code Playgroud)

我还编写了一个测试方法来测试我的setCapacity()方法是否有效.

void StackTester::setCapacityTest() {
cout << "- setCapacity... " << …
Run Code Online (Sandbox Code Playgroud)

c++ malloc stack glibc capacity

1
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×1

capacity ×1

glibc ×1

malloc ×1

stack ×1