程序控制内存大小随着需求改变:
void main(void) /*主函数*/
{
int a,b,i,*p,n = 0;
p = (int*)malloc(sizeof(int));
printf("请任意输入两个整数,以空格作为间隔:\t");
scanf("%d %d",&a,&b);
if (a < b)
{
a = a^b;
b = a^b;
a = a^b;
}
if (NULL != p)
{
for (i = a; i <= b; i++)
{
if (check_prime(i))
{
p[n] = i;
n++;
p = (int*)realloc(p,(n + 1)*sizeof(int)); //重新分配内存
if (NULL == p)
{
printf("内存分配失败");
break;
}
}
}
}
printf("\n\n%d--%d之间所有的质数有:\n",a,b);
for (i = 0; i < n; i++)
{
printf("%-5d", p[i]);
}
free(p);
system("pause");
}