gpt4 book ai didi

c - 段错误 : while bubble sort of arrays

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:56 25 4
gpt4 key购买 nike

#include <stdio.h>

int main(void)
{
int i, j, tmp;
int data[] = {1, 6, 7, 10, 9, 8};
for ( i = 0; i < sizeof(data); i++)
for ( j = 0; j < sizeof(data) - 1; j++)
if (data[j] > data[j + 1])
{
tmp = data[j];
data[j] = data[j + 1];
data[j + 1] = tmp;
}
for (i = 0; i < sizeof(data); i++) {
printf("%d ", data[i]);
}
return 0;
}

这段代码在运行时打印segmentation fault,谁能帮我找出问题所在

最佳答案

改变

sizeof(data)

在所有for循环的条件下

sizeof(data)/sizeof(data[0])

这样做是因为 sizeof(int-array) 是数组中元素的数量乘以 sizeof(int)(通常是 4 个字节)。 sizeof(data[0])sizeof(int) 相同,因为 data[0] 是一个 int。 所以,你也可以使用

sizeof(data)/sizeof(int)

在循环的条件下。

关于c - 段错误 : while bubble sort of arrays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28380312/

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