• 关于free是如何释放内存的


    4.1美团后台实习面试,没睡好效率极差。

    其中有一个问题:free是如何释放内存的。

    当时没答出来,网上找了几篇博文。

    首先说一下C++和C的new/delete和malloc/free。

    new做两件事:①分配内存 ②调用构造函数。delete是调用析构函数,然后释放内存。

    malloc和free是分配和释放内存。malloc返回的是void指针,需要强制类型转换。

    首先来看一段代码:

    #include<iostream>
    #include<windows.h>
    #include<string>
    #include<cstdlib>
    using namespace std;
    #include <iostream>
     
    int main(int argc, char * argv[]) 
    { 
      char *p =new char;
      *p='a';
      delete p;
      char *p1=new char;
      *p1='b';
      *p='c';
      std::cout<<*p1<<std::endl;
      delete p1;
      return 0;
    }

    输出结果为:

     这是一个帖子里讨论的内容:https://bbs.csdn.net/topics/300014026/

    p和内存好像钥匙和房子的关系。free(p)只是把房子还了回去,该房子可以再次分给别人,你如果再次造访这个不属于你的房子,你就会看到不属于你的东西。

    (未完,后续补充)

    诸位正值青春年少,一定恣情放纵,贪恋香艳梅施之情,喜欢风流雅韵之事,洒脱木拘。然而诸位可知,草上露一碰即落,竹上霜一触即溶,此种风情难于长久。
  • 相关阅读:
    PaoptMap
    NES游戏常用汇编指令
    JS_XMLHttpRequest
    Function Evaluation
    exists的用法
    我的博客园博客开通咯(qyl)
    数据库访问类(Sql)
    Show一下自己的编程工具
    Ajax.net使用初体验
    WEB打印代码大全(NEW!!)
  • 原文地址:https://www.cnblogs.com/shilipojianshen/p/12620639.html
Copyright © 2020-2023  润新知