分段错误:11,当我运行C代码时
我是C编程新手。当我写一个关于整数排序的c代码时。我发现了一个分段错误:11。我搜索了相关文章,但对我来说似乎太混乱了。下面是我代码的第一部分(获取10个输入整数,并导出所有奇数整数)。你能帮我吗分段错误:11,当我运行C代码时,c,segmentation-fault,C,Segmentation Fault,我是C编程新手。当我写一个关于整数排序的c代码时。我发现了一个分段错误:11。我搜索了相关文章,但对我来说似乎太混乱了。下面是我代码的第一部分(获取10个输入整数,并导出所有奇数整数)。你能帮我吗 #include <stdio.h> int i; int main(void) { int array[10]; int previous[10],odd[10]; printf("Pls enter 10 nums\n"); while(i < 10) { sca
#include <stdio.h>
int i;
int main(void)
{
int array[10];
int previous[10],odd[10];
printf("Pls enter 10 nums\n");
while(i < 10)
{
scanf("%d", &array[i++]);
}
for(i = 0;i < 10;i++)
{
printf("%d ", array[i]);
}
for(i = 0;i < 10;i++)
{
int a,j;
if(array[i] % 2 == 1)
{
previous[a] = i;
odd[j] = array[i];
a++;
j++;
}
}
}
#包括
int i;
内部主(空)
{
int数组[10];
int-previous[10],奇数[10];
printf(“请输入10 nums\n”);
而(i<10)
{
scanf(“%d”&数组[i++]);
}
对于(i=0;i<10;i++)
{
printf(“%d”,数组[i]);
}
对于(i=0;i<10;i++)
{
int a,j;
if(数组[i]%2==1)
{
先前[a]=i;
奇数[j]=数组[i];
a++;
j++;
}
}
}
如果你不给出i
和a
初始值,你可能会试图超出数组的边界。如果你不给出i
和a
初始值,你可能会试图超出数组的边界。问题在于变量a
和j
。在C语言中,您无法确定在声明它们时它们是否具有值0
问题在于变量a
和j
。在C语言中,您无法确定当您声明它们时,它们是否具有值0
欢迎使用SO。您可能希望学习使用调试器,并提高编译器的警告级别。它应该警告您变量a
和j
未初始化,因此可能发生任何情况,包括segfaults。谢谢。)是否有学习调试器或提高警告级别的资源?欢迎使用。您可能希望学习使用调试器,并提高编译器的警告级别。它应该警告您变量a
和j
未初始化,因此可能发生任何情况,包括segfaults。谢谢。)是否有学习调试器或提高警告级别的资源?