分段错误:11,当我运行C代码时

分段错误: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

我是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)
{
    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。谢谢。)是否有学习调试器或提高警告级别的资源?