编译能过去,但是报错

遇到了一个奇怪的问题
程序简化之后大概是这样,先输入一个整数n,然后输入n个整数存入数组再输入一个整数m,然后输入m个整数存入数组是要求交集的,结果在for循环里就出了问题,只要在for循环里出现赋值操作就报错呢例如我写的flag=5,但是temp=*(bp+i);temp++就可以..求教咋回事呢?
#include
#include
intmain(void){
inta,b;
inti,j;
intflag;
int*ap=(int*)malloc(sizeof(int)*a);
int*bp=(int*)malloc(sizeof(int)*b);
scanf("%d",&a);
for(i=0;iscanf("%d",ap+i);
}
scanf("%d",&b);
for(i=0;iscanf("%d",bp+i);
}
/************交集********************/
int*p=(int*)malloc(sizeof(int)*(a+b));
int*temp=p;
for(i=0;i*(p+i)=*(ap+i);
}
temp=temp+a;//指针挪过来
for(i=0;i
flag=5;
/*temp=*(bp+i);
temp++;*/
}
//printfArr(p,a);
//printfArr(p,a+b);
return0;
}
慕后森
浏览 315回答 1
1回答

慕妹3146593

解决了intap=(int)malloc(sizeof(int)*a);intbp=(int)malloc(sizeof(int)*b);这里越界了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript