c++ pair删除错误
C++ pair delete error
*更新: *终于找到问题了。问题是这样的:
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中加载core文件来检查错误发生的位置。
相关文章:
- 删除指向指针的指针是运行时错误吗
- 为什么类中的ostringstream类型的成员会导致";调用隐含删除复制构造函数";错误
- 从矢量中删除元素后出现隔离错误
- 删除映射和分割错误中的一个过去结束元素
- 当我从下面的代码中删除关键字 virtual 时,它可以正常工作,否则会出现错误。在这里"virtual"字的意义是什么?
- 从类型列表中递归删除重复项会导致编译器堆空间错误 (VS2017)
- 尝试了解在导入的静态方法上使用删除方法时的错误
- 为什么每当我尝试运行此链接列表删除功能时都会收到分段错误错误?
- 删除堆后对瓦尔格林德错误感到困惑
- C++ VS 错误:<实验/文件系统>提供 std::experimental::文件系统的标头已被Microsoft弃用,将被删除
- 删除链表中的节点 - 分段错误
- 尝试从动态分配的二维数组 C++ 中读取值时出现分段错误,并在尝试删除它时给出 munmap_chunk():
- 为什么删除分配的阵列会导致内存错误?
- 错误:使用已删除的函数"std::unique_ptr<...>
- 如何修复从矢量中删除元素的错误?
- 删除使数据处于"错误状态"的默认构造函数的模式?
- 尝试删除指向派生对象的基指针时断言错误
- 错误:当我尝试使用引用时,使用已删除的功能
- 编译时错误:删除了联合默认构造函数
- 提升d_ary_heap/priority_queue编译错误:删除函数