void local () {
    int x = 100;

    double *loc;
    loc = (double *) malloc(sizeof(double)*100);
    memset(rxnrun, 0x0, sizeof(double)*100);

    // perform some operations


    // free(loc);
    return; // without doing free for loc variable
}

在这里,我可以看到问题所在,因为loc变量存在内存泄漏。但是,变量x呢?如果在函数返回后我们将变量xloc变量保留为无人值守(非空闲),那么这两个变量所获取的内存空间将如何处理?

他们(两个变量)是否仍将获得空间?

最佳答案

实际上,xloc变量都是本地函数变量,函数返回时,都释放了

但是,loc是一个指针,指针指向的内存是未释放的。只是malloc()分配的内存没有释放。

关于c - 函数返回局部变量后,内存空间的行为如何?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26009989/

10-13 07:05