zoukankan      html  css  js  c++  java
  • 不调用free会内存泄露吗?

    内存泄露的概念大家可以自行百度下,本文不做阐述。本文要讲的是在程序中分配了内存,但是最后没有使用free()函数来释放这块内存,会导致内存泄露吗?比如有如下代码:

    #include <stdio.h>
     
    int main() 
    {
    char *p = (char *)malloc(1); 
     
        if(NULL == p) 
        { 
            printf("分配内存失败!
    "); 
            return 0; 
        } 
        else 
        { 
            *p = 'a';
    //free(p);
        } 
     
        return 0; 
    } 

    在程序中,分配了一个字节大小的内存区域,并使得指针变量p指向这块内存区域。如果这块内存分配成功,则会把字符'a'存放在这块内存区域,并且没有调用free()函数来释放这块内存,会不会导致内存泄露呢?
    答案是不会。在程序执行结束后,分配的内存区域会自动被系统处理掉。但是及时释放不用的内存区域则是一个良好的编程习惯,因此建议最后还是要使用free函数来释放掉!

  • 相关阅读:
    dp uva1025
    dp uva10003
    dp最优矩阵相乘poj1651
    dp uva11584
    动态规划uva11400
    流形学习 (Manifold Learning)
    tf.nn.embedding_lookup
    word2vec
    word2vec 细节解析1
    collections-Counter
  • 原文地址:https://www.cnblogs.com/itblog/p/7236570.html
Copyright © 2011-2022 走看看