sigsegv在没有指针的线上
SIGSEGV on a line without pointers
这是一种递归的快速排序,到目前为止,只有100000或更大的数组使我失败(也许小一点(。起初,我认为这是一个记忆尺寸问题,但它调用Sigsegv不是堆栈溢出。我有一个使用相同分区代码的迭代版本,并且可以正常工作。这是代码...
template <typename T>
void QuicksortR(T *a, u_int l, u_int r){
if(r <= l) return;
u_int i = Partition(a, l, r);
if(i-1 < i) //in case of underflow
QuicksortR(a, l, i - 1);
QuicksortR(a, i + 1, r);
}
...
template <typename T>
u_int Partition(T a[], u_int l, u_int r){
u_int i = l-1; //potential underflow fixed by an overflow
u_int j = r;
T v = a[r];
while(1){
while(a[++i] < v); //overflow fix;
while(a[--j] > v)
if(i == j) break;
if(i >= j) break;
swap(a[i], a[j]);
}
swap(*(a+i), *(a+r));
return i;
}
,但它调用sigsegv而不是堆栈溢出
没有人是呼叫 SIGSEGV
。 SIGSEGV
是在某些条件下的异常。一个这样的条件是堆栈溢出,它可能在这里发生。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 为什么使用 "this" 指针调用派生成员函数?
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用指针从C++中的数组中获取最大值
- 助记符和指向成员语法的指针
- 嵌入方指针压缩已禁用
- 数组的指针从不分段故障
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 何时在引用或唯一指针上使用移动语义
- QMetaObject invokeMethod的基于函数指针的语法
- 如何从 std::atomic 中提取指针 T<T>?
- 如何在 C# 中映射双 C 结构指针?
- sigsegv在没有指针的线上
- 尝试将返回无符号值的函数分配给指向无符号的指针时,继续获取 SIGSEGV
- 程序在调用类指针时收到信号SIGSEGV,分段错误
- 修改指针会导致 SIGSEGV 信号
- C++ 通过共享指针将值分配给结构成员会导致 SIGSEGV
- 指向结构的指针的动态数组在成员变量赋值时抛出 SIGSEGV
- 带有std::指向模板对象的指针映射的SIGSEGV