关于C语言的动态内存分配 malloc和free函数

2024年11月28日 19:37
有1个网友回答
网友(1):

是这样的,如果不释放,下次这段动态内存空间就无法再使用了,久而久之,容易造成内存泄露这样的问题
#include

#include

int main()

{

int *p=NULL;

int years=1994;

int days=365;

int flag=0;

int i=0;

int j=0;

if((0==years%400)||((0==years%4)&&(0!=years%100)))

{

p=(int*)malloc(366);

flag=1;

}

else

{

flag=0;

p=(int*)malloc(365);

}

p=p+31;

for(j=1;j<=29;j++)

{

*p=j;

printf("%-4d",*p);

p++;

if(0==j%4)

{

printf("\n");

}

}

free(p);

return 0;

}
希望能够帮助到你,望采纳!