cocos記憶體管理學習

2021-08-18 09:19:37 字數 720 閱讀 5062

口訣:

1.誰建立,誰釋放。通過new或者clone建立的物件,必須呼叫release或者autorelease。

2.new,clone以外的方法建立的物件都被宣告了autorelease。

3.誰retain,誰release。無論這個物件是如何生成的,只要呼叫了retain就要呼叫release。

正規化:1.建立乙個autorelease物件:

auto obj=new myclass();

obj->autorelease;

2.release乙個物件後,立即清空指標:

auto obj=new my class();

obj->release();

obj=nullptr;

3.指標賦值給另乙個指標

auto obj1=new myclass();

auto obj2=obj1 ;

obj2->retain();

//obj2 do something...

obj2->release();

obj2=nullptr;

4.在乙個函式中建立並返回物件,需要把這個函式設定為autorelease:

myclass* getinstance(){

my class *instance=new myclass();

instance->autorelease();

return instance;

記憶體管理學習筆記

1.棧 堆和靜態區 靜態區 儲存自動全域性變數和static變數 包括全域性靜態變數和區域性靜態變數 靜態區的內容在整個程式的生命週期內都存在。棧 儲存區域性變數。棧上的內容只在函式的範圍內存在,當函式執行結束,這些內容也會自動被銷毀。其特點是效率高,但是空間大小有限。堆 由malloc系列函式或n...

object c 記憶體管理學習筆記

nsautoreleasepool pool nsautoreleasepool alloc init pool drain 這個函式可以把autoreleasepool裡的物件釋放 在for迴圈中每次都釋放記憶體池的示例 nsautoreleasepool temppool for i 0 i a...

c記憶體管理學習總結

1.c中分配記憶體有malloc 和calloc 函式,它們返回乙個位址指標,malloc 函式使用如下 double ptd ptd double malloc 30 sizeof double 這段 請求30個double型別值的空間,並把ptd指向該空間所在位置。calloc 函式使用如下 l...