C ++对删除错误

*更新:*最后我发现了问题。问题是这样的:
pair<int,int> *findPair(){
    pair<int,int> *t = new pair<int,int> [10];
    for(int i=0;i<11;i++) // error here
    {
        t[i].first =1;
        t[i].second =2;
    }
    return t;
}

int main() {
    pair<int, int> * tt = findPair();
    tt[1].first =8;
    delete [] tt; // error
    return 0;
}
存在段错误错误。 gcc没有显示任何超出范围错误的警告。在我的原始代码中,我使用
k
作为
pair
数组的索引。 k在每个while循环中发生变化,最终得到一个超出界限的值。谢谢大家,对由此造成的不便表示歉意。     
已邀请:
我将您的代码复制到.cc文件中(使用正确的#include),这段代码运行正常。您确定这是分段故障所在的位置吗? 如果您使用的是linux,并且没有核心文件,请使用“ulimit -c unlimited”。 然后,您可以在gdb中加载核心文件以检查错误发生的位置。     

要回复问题请先登录注册