zoukankan      html  css  js  c++  java
  • 当函数返回一个局部变量的指针问题,内存是否被释放

    在学习c/c++的时候,我遇到了一个让我思考良久的问题,当一个自定义函数返回一个局部变量的指针时是否是个野指针呢?对此,我讲一下我的理解

    按照正常的理解,当一个函数运行完毕后会使其内存释放,这就产生了一个问题。当一个函数里面有一个局部变量时,使一个指针指向这个变量的空间,最后这个空间被释放,然后指针

    变为野指针,即这种理解:(注:这是错误理解

    首先

     然后内存释放

    如果按照这样的逻辑,p定是个乱码

    但是vs2019运行如下:

     其实真实原因是,我们理解的内存释放,并不是真正意义上的内存释放,而是表示这个空间可以被其他内存使用,而其值仍存在,并不是内存里的东西直接就没了,

    但返回一个类似的指针是一个大忌,这种程序小,可能没有问题,但是在某些大项目中,若这样写就可能使数据内存出现问题。

  • 相关阅读:
    素数
    超级素数
    SUMMARIZE 6.1
    广度优先搜索与八字码问题
    poj2352
    poj1198
    康托展开
    STL里的内存池实现
    构造函数,C++内存管理,内存泄漏定位
    内联函数,宏定义,内存对齐,类型转换
  • 原文地址:https://www.cnblogs.com/Qsir10/p/11972807.html
Copyright © 2011-2022 走看看