函数结束后怎么没有自动释放内存?

2025-03-31 19:25:20
推荐回答(3个)
回答1:

main()函数结束后才会释放占用的动态内存,而不是其他函数。

在你的代码中,每次调用int *sep()都会都会创建cn[4]数组,但cn[4]是局部变量,sep()函数结束后,这个数组就不存在了,如果你希望函数返回函数操作结果,可以在主调函数中定义数组cn[4],并作为sep()函数参数即可实现。例如

int main() {
    int cn[4],n;
    scanf("%d",&n);
    sep(cn,n);
    // ..........
    return 0;
}

回答2:

永远不要返回非static局部变量的地址

回答3:

http://blog.csdn.net/l5201314131413141314/article/details/7099312