动态分配内存泄露问题
#include"stdio.h"#include"stdlib.h"
#include"conio.h"
#include"string.h"
#define N 20000
//#define NULL 0
int *p1,*p2;
int i;
int num[10];
void gen_rand (int band) //产生随机数,存储在分配的空间中
{
for(i=0;i<N;i++)
{
*p1 = rand() % band;
printf("%d ", *p1);
p1++;
}
}
void display() // 显示输出统计函数
{
for(i=0;i<10;i++)
{
printf("The number of %d is: ",i);
printf("%d\n",num[i]);
}
}
void stat(int *p) //统计随机数中每个数出现的次数
{
p=p2;
for(i=0;i<N;i++)
{
switch (*p)
{
case 0: num[0]++;
break;
case 1: num[1]++;
break;
case 2: num[2]++;
break;
case 3: num[3]++;
break;
case 4: num[4]++;
break;
case 5: num[5]++;
break;
case 6: num[6]++;
break;
case 7: num[7]++;
break;
case 8: num[8]++;
break;
case 9: num[9]++;
break;
default :break;
}
p++;
}
}
void main()
{
p1=(int *)malloc(N * sizeof(int)); //分配空间
if(p1==NULL)
{
printf("Malloc memoryspace failed.");
exit(1);
}
p2=p1;
memset(p1,0,N * sizeof(int)); //初始化内存
gen_rand(10);
stat(p1);
display();
free(p1);
free(p2);
p1=NULL;
p2=NULL;
getch();
}
很纠结的问题,当运行的时候,结果是正确的,但显示的时候总是会出现一个窗口(粘贴不上),请教别人说是内存泄露的问题,但怎么也找不到问题所在,求高手赐教!!!