气泡排序数字
Bubble Sorting numbers
我正在尝试创建一个函数,该函数对数字进行气泡排序并不断出现分段错误。有什么建议吗?
void bubblesort(struct Record *ptr, int records, int (*fcomp)(const void *, const void *))
{
long c, d, i;
struct Record *sa, *sb, sc;
for (c = 0 ; c < ( records - 1 ); c++)
{
for (d = 0 ; d < records - c - 1; d++)
{
for(i = 0; i < records - 1; i++)
{
if (fcomp(ptr+i, ptr+i+1) <= 0)
{
/* Swapping */
sc = sa[d];
sa[d] = sb[d+1];
sb[d+1] = sc;
}
}
}
}
}
访问sa
时未定义的行为,sb
。
sc = sa[d];
sa[d] = sb[d+1];
sb[d+1] = sc;
都是非法的,因为它们只是悬空的指针。
struct Record *sa, *sb
没有为sa
和sb
分配任何内存,即使您这样做了,我也看不出它有什么相关性。无论如何,它们都会包含虚假值。
相关文章:
- 试图在c++中对数字列表进行排序
- 使用三个数字比较器进行排序
- 我怎么不能按课程代码的降序对数字进行排序
- 合并排序C++帮助 为合并的数字动态分配临时数组
- 修改的选择排序,选择最大的数字,然后交换到最后
- 如何按升序对输入文件中的数字进行排序,并找到它们的范围和中值
- 选择排序以查找未排序数组中的最大数字
- 我想要一个改变数组快速排序的2个数字的函数
- 从(排序的)数字列表中获取数字范围
- C++:按数字排序链表错误
- 如何对忽略某些数字的 std::vector 进行排序?
- 如何对包含数字和符号的字符串进行排序?
- 查看数字是否包含在未排序的双数字间隔内的最有效方法?
- 如何在大型文本文件中对数字进行排序
- 具有前导数字的字符串的排序向量
- 如何在Qt 4.6.2中对QStringList进行数字排序,其中QCollator不可用
- 如何将字符串/数字排序添加到 QSortFilterProxyModel 派生类
- 从 txt 文件读取到矢量中,然后按数字C++排序
- 寻找最准确的双数字排序
- 这是对不同数字排序的更好方法