0x600000000的内存读取失败

时间:2017-05-01 08:44:12

标签: c arrays sorting bubble-sort

我在xcode Mac上进行简单的C语言练习

这是简单的冒泡排序算法。

我猜代码中没有逻辑错误或语法错误 但我看到调试后的错误警告

错误:0x600000000

的内存读取失败

也许这是关于记忆问题,但我不知道它意味着什么 以及如何在没有任何警告信息的情况下解决这个问题

P.S:我不是母语为英语的人。感谢您事先了解我的英语不好:)

int p[]={0},i,j,num,temp;

printf("number: ");
scanf("%d",&num);

for(i=0;i<num;i++)
    scanf("%d",&p[i]);

printf("arry numbers show-----");
printf("\n");
for(i=0;i<num;i++)
    printf("%d ",p[i]);
printf("\n");

for(i=0;i<num;i++)
{
    for(j=0;j<num-1;j++)
    {
        if(p[j]>p[j+1])
        {
            temp=p[j];
            p[j]=p[j+1];
            p[j+1]=temp;
        }
    }
}

for(i=0;i<num;i++)
    printf("%d ",p[i]);
printf("\n");

1 个答案:

答案 0 :(得分:0)

您只使用一个元素显式初始化了数组int p[]={0}。在排序的情况下,如果您只有一个元素,这意味着它已经排序!请参阅Arrays Arrays documentation的此文档。