gpt4 book ai didi

c - 对 int 数组进行排序,在 c 中被 SIGABOT 杀死

转载 作者:行者123 更新时间:2023-11-30 15:07:53 25 4
gpt4 key购买 nike

void sort_int_tab(int *tab, unsigned int size);

我正在尝试编写一个必须对“tab” int 数组进行排序(就地)的函数,该数组恰好包含“size”成员,按升序排列。保留 double 。当我运行代码时,我收到 SIGABOT,我该如何解决这个问题?

void    sort_int_tab(int *tab, unsigned int size)
{
unsigned int i;
unsigned int j;
int tmp;

i = 0;
j = 0;
while (i < size)
{
j = 0;
while (j < size)
{
if (tab[j] > tab[j + 1])
{
tmp = tab[j];
tab[j] = tab[j + 1];
tab[j + 1] = tmp;
}
j++;
}
i++;
}
}

最佳答案

您正在通过访问 tab[j + 1] 来访问超出其长度的数组当您仅仅确定 j < size 。有可能j == size因此j出界。要解决此问题,请比较 j + 1违反限制:

while (j + 1 < size) ...

关于c - 对 int 数组进行排序,在 c 中被 SIGABOT 杀死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37823856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com