c - 未初始化的嵌套for循环值
问题描述
我知道问题听起来很愚蠢,我真的不知道这段代码有什么问题?
void sort(int *arr, int size)
{
int min = 0;
for (int i = 0; i < size - 1; i++)
{
for (int j = i; i < size; j++)
{
if (arr[min] > arr[j])
{
min = j;
}
}
if (min != i)
{
Swap(&arr[i], &arr[min]);
}
}
}
下面的代码应该排序,arr
但它给出了分段错误。我通过调试器运行了这段代码,它显示了j
at line的值
for (int j = i; i < size; j++)
类似3234
(未初始化)和程序结束。但j
应该是0
。
解决方案
在您的第二个for
循环中,它应该是j < size
,而不是i < size
。
推荐阅读
- r - 如何将一个字符列分成两列?
- javascript - 未能在“CustomElementRegistry”上执行“定义”:
- amp-html - 如何在 AMP 应用程序中连接 RSS 提要
- flutter - Flutter 命令 - Powershell.exe 不在 PATH 错误消息中
- python - 如何应用 node2vec 构建链路预测模型
- c++ - 在 CUDA 中获取纹理对象
- vega-lite - 在vega热图中旋转x轴标签?
- ios - 如何将ios13项目更新到ios14
- python - 优化问题:使用文件1中的字典转换文件2
- c - 如何用 8051 微控制器制作数字时钟