大侠们请帮看看这段代码有什么问题没?
int *D(void)
{
int *i;
i=(int *)malloc(sizeof(int));
*i=1000;
return i;
}
main(void)
{
int *i;
i=D();
printf("%d",*i);
getch();
}
问题:1,malloc 分配的空间会不会随着D函数的终结而被系统回收?
2,上面这段代码是可以正常运行的,是不是i只是指向了那段空间,这段空间是可以被其他函数重新占有的?
3,是不是只有调用了free之后malloc分配的空间才会被系统回收,这样的话,我若不调用FREE函数,是不是
在整个程序运行完后,MALLOC分配的空间也不能被系统回收?
总言之:我就是想知道,MALLOC分配的空间在没有调用FREE之前,它的生命周期到底有多长??
兄弟们一定要帮帮我啊!!!