zoukankan      html  css  js  c++  java
  • 内存管理

    在OC中当使用 new alloc  和copy创建一个对象时 该对象的计数器值为1 ,当不再使用该对象时要对该对象发出一条release 或autorelease这样该对象在寿命结束时被销毁。2.当你通过任何其他方法获得一个对象时,则假设该对象的保留计数器值为1,而且已经被设置为自动释放,你不需要执行任何操作来确保该对象被清理  。如果你打算在一定时间内拥有该对象,则需保留它并确保在操作完成时释放它。3.如果你保留了某个对象,逆需要(最终)释放或自动释放该对象,必须保持retain方法和release方法的使用次数相等.

    在C++中,内存分成5个区,分别是自由存储区全局/静态区常量存储区。:存放函数参数以及局部变量,在出作用域时,将自动被释放.栈内存分配运算内置于处理器的指令集中,效率很高,但分配的内存容量有限. :new分配的内存块(包括数组,类实例等),需delete手动释放.如果未释放,在整个程序结束后,OS会帮你回收掉.  堆与栈的主要区别管理方式不同: 栈是编译器自动管理的,堆需手动释放malloc/free new/delete有了malloc/free为何还需要new/delete呢? malloc/free是标准库函数,而new/delete是运算符,它们都可用于申请/释放动态内存.但对于非基本数据类型(比如类对象)而言, malloc/free无法自动执行对象的构造/析构函数.而new/delete却可以.

  • 相关阅读:
    (2)链表有哪几种分类——4
    (1)有哪几种表的实现方式——4
    链表基本操作
    多窗口
    UI线程和work线程
    模板
    (二)tensorflow-gpu2.0之自动导数
    (一)tensorflow-gpu2.0学习笔记之开篇(cpu和gpu计算速度比较)
    高阶函数及map、reduce、filter、lambda、sorted等函数的应用
    迭代器
  • 原文地址:https://www.cnblogs.com/tianlianghong/p/5232569.html
Copyright © 2011-2022 走看看