#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
#define n 10
int main()
{
srand((unsigned)time(0));//随机赋值
int a[n]={0};
for(int i=0;i<n;i++)
{
a[i]=rand()%100;
}
for(int i=0;i<n;i++)//打印
{
printf("%d ",a[i]);
}
printf("\n");
int *p;
p=(int *)malloc(sizeof(int)*n);
memset(p,0,sizeof(int)*n);
strcpy(p,a);
//冒泡排序,从小到大
for(int j=0;j<n-1;j++)
{
for(int i=0;i<n-1-j;i++)
{
if(*(p+i)>*(p+i+1))
{
int temp;
temp=*(p+i);
*(p+i)=*(p+i+1);
*(p+i+1)=temp;
}
}
}
printf("%d %d\n",*(p+9),*(p+1));
for(int i=0;i<n;i++)//打印
{
printf("%d ",*(p+i));
}
printf("\n");
free(p);
return 0;
}
哪里错了呀,为什么前几项是0?
如果输出(p+10)和(p+12)
得到
是复制的时候错了吗?哪里错了呀到底