我在合并排序中传递此数组的方式有什么问题
What is wrong with the way I pass this array in my mergesort?
我在尝试对我传递的数组执行任何操作时遇到段错误。很可能我正在犯一些简单的愚蠢错误,但我没有看到它。
合并调用:
merge(&(array[size]), 0, size-1);
合并
void merge(people* pe,int low,int high)
{ //cout<< pe[0].fname << endl;
if(low < high)
{ int mid = (low+high)/2;
merge(pe, low, mid);
merge(pe, mid+1, high);
mymerge(pe, low, mid, high);
}
}
我进入那个cout,看看我是否可以访问那里的数组,我立即在那里得到一个段错误。我在那里做错了什么?(我可以 cout array[0].fname,所以结构数组本身没有问题)
如果您以明显的方式命名了变量,那么(除了祝贺您这样做之外),&(array[size])
可能会返回指向超出array
边界的 1 的指针。
取消引用该指针会给你未定义的行为,因为你不拥有那个记忆。
我想你的意思是通过&(array[0])
,或者只是array
.
相关文章:
- 如何以优化的方式同时迭代两个间距不相等的数组
- 在数组中输入 n 个整数的列表,并以类似于钟摆来回移动的方式排列它们. 输入-1 3 2 5 4,输出5 3 1 2 4
- 在C++中,建议通过数组循环的方式是什么?
- 以这种方式初始化的 char 数组是否会自动添加空终止符?
- C++通过别名指针以静默方式将错误的类型分配给数组元素
- 如何以这种方式处理字符串数组
- 数组数据以错误的方式遍历 Python/Matlab
- 使用分而治之的最大总和子数组,为什么要以不同的方式使用 for 循环,答案是错误的?
- 使用字节数组具有单字节对齐方式的结构是否安全
- 有没有一种递归的方式来制作这个字符串数组?
- 以类似数组的方式访问结构成员:在与数组不同的结构中填充?
- C 结构具有CHAR数组以不寻常的方式初始化为零
- 动态规划 - 在数组中查找目标求和方式
- 我可以以某种方式使我的矢量/数组动态更改装置数量吗?
- 一维数组映射方式的性能差异问题
- 在动态 2-D 数组中填充 0 的更简洁的方式C++
- 我需要以尺寸方式计算数组的平均值
- 如何以递归方式反转任何数组?(不使用C++标准库)
- 在编译时以增量方式创建数组
- 为什么在指针和数组的情况下,字符数组的处理方式不同