C 为什么这个函数永远不会返回?这是分割错误吗? int-position\u的最大值(int*数组,int-size) { int最大,i,最大_i; i=0; 最大_i=0; 而(i
这段代码应该找到数组中最高元素的索引并返回它。C 为什么这个函数永远不会返回?这是分割错误吗? int-position\u的最大值(int*数组,int-size) { int最大,i,最大_i; i=0; 最大_i=0; 而(i,c,segmentation-fault,C,Segmentation Fault,这段代码应该找到数组中最高元素的索引并返回它。 显然,这段代码中有一个分段错误,但我不知道它是什么!我已经查看了很多次代码,没有发现任何问题。顺便说一句,我是C语言的新手(这解释了很多)。谢谢 它不会导致分段错误,但该代码会进入无限循环。这是因为您将i++放在else块中。它永远不会递增 将其置于else块之外 int position_of_largest(int * array, int size) { int largest, i, largest_i; i = 0; larg
显然,这段代码中有一个分段错误,但我不知道它是什么!我已经查看了很多次代码,没有发现任何问题。顺便说一句,我是C语言的新手(这解释了很多)。谢谢 它不会导致分段错误,但该代码会进入无限循环。这是因为您将
i++
放在else
块中。它永远不会递增
将其置于else
块之外
int position_of_largest(int * array, int size)
{
int largest, i, largest_i;
i = 0;
largest_i = 0;
while (i < size)
{
if (i == 0)
{
largest = array[0];
largest_i = 0;
}
else
{
if (largest < array[i])
{
largest_i = i;
largest = array[i];
}
i++;
}
}
return largest_i;
}
else{
if(最大<数组[i]){
最大_i=i;
最大=数组[i];
}
}
i++;
它不会导致分段错误,但该代码会进入无限循环。这是因为您将i++
放在else
块中。它永远不会递增
将其置于else
块之外
int position_of_largest(int * array, int size)
{
int largest, i, largest_i;
i = 0;
largest_i = 0;
while (i < size)
{
if (i == 0)
{
largest = array[0];
largest_i = 0;
}
else
{
if (largest < array[i])
{
largest_i = i;
largest = array[i];
}
i++;
}
}
return largest_i;
}
else{
if(最大<数组[i]){
最大_i=i;
最大=数组[i];
}
}
i++;
它不会导致分段错误,但该代码会进入无限循环。这是因为您将i++
放在else
块中。它永远不会递增
将其置于else
块之外
int position_of_largest(int * array, int size)
{
int largest, i, largest_i;
i = 0;
largest_i = 0;
while (i < size)
{
if (i == 0)
{
largest = array[0];
largest_i = 0;
}
else
{
if (largest < array[i])
{
largest_i = i;
largest = array[i];
}
i++;
}
}
return largest_i;
}
else{
if(最大<数组[i]){
最大_i=i;
最大=数组[i];
}
}
i++;
它不会导致分段错误,但该代码会进入无限循环。这是因为您将i++
放在else
块中。它永远不会递增
将其置于else
块之外
int position_of_largest(int * array, int size)
{
int largest, i, largest_i;
i = 0;
largest_i = 0;
while (i < size)
{
if (i == 0)
{
largest = array[0];
largest_i = 0;
}
else
{
if (largest < array[i])
{
largest_i = i;
largest = array[i];
}
i++;
}
}
return largest_i;
}
else{
if(最大<数组[i]){
最大_i=i;
最大=数组[i];
}
}
i++;
分段错误是指您试图访问未分配或未授权的内存空间。。我希望当您调用函数position\u of_max(int*array,int size)
时,您正在向array
指针发送指向足够内存空间(size*4字节)的指针,我们能看到函数的调用吗?而且,i++
永远不会被执行。@haris:有时。当您使用的是正确类型的机器并且运气不好时。@重复数据消除或不幸运气如何?关于分段错误是什么:分段错误是指您试图访问未分配或未授权的内存空间。。我希望当您调用函数position\u of_max(int*array,int size)
时,您正在向array
指针发送指向足够内存空间(size*4字节)的指针,我们能看到函数的调用吗?而且,i++
永远不会被执行。@haris:有时。当您使用的是正确类型的机器并且运气不好时。@重复数据消除或不幸运气如何?关于分段错误是什么:分段错误是指您试图访问未分配或未授权的内存空间。。我希望当您调用函数position\u of_max(int*array,int size)
时,您正在向array
指针发送指向足够内存空间(size*4字节)的指针,我们能看到函数的调用吗?而且,i++
永远不会被执行。@haris:有时。当您使用的是正确类型的机器并且运气不好时。@重复数据消除或不幸运气如何?关于分段错误是什么:分段错误是指您试图访问未分配或未授权的内存空间。。我希望当您调用函数position\u of_max(int*array,int size)
时,您正在向array
指针发送指向足够内存空间(size*4字节)的指针,我们能看到函数的调用吗?而且,i++
永远不会被执行。@haris:有时。当您使用的是正确的机器并且运气不好时。@重复数据消除程序或者不幸的运气如何?关于分段错误是什么:@lisacarlisle haccks如果您“接受”答案,也会笑@如果你“接受”这个答案,利萨卡利尔·哈克斯也会笑@如果你“接受”这个答案,利萨卡利尔·哈克斯也会笑@如果你“接受”这个答案,利萨卡利尔·哈克斯也会笑!