I am getting a runtime error for the following code. Please explain the cause:
--------------------------------------------------------------------------------------------------------------#include
include
int n,m;
void seive(int *p){ //seive of eratosthenes algoroithm
int i,j,k;
for(i=0;i<=n;i++) p[i]=1;
p[0]=0;p[1]=0;
for(i=2;i<=n;i++){
j=p[i];
if(j==0){ j++;continue; //composite
}
else{
for(k=j*2;k<=n;k=k+j){ //setting seive
p[k]=0;
}
}
}
}
void display(int *a){
int i;
for(i=m;i<=n;i++){
if(a[i]==1){printf("%d\n",a[i]); //print iff prime
}
printf(" \n");
} }
int main() {
int i,c;int *a;
scanf("%d\n",&c);
for(i=0;i<c;i++){
scanf("%d %d\n",&m,&n);
a=(int*)malloc((n+1)*sizeof(int));
seive(a);
display(a);
free(a);
}
return 0;
}