您好,登錄后才能下訂單哦!
這一次整理出來的是有關藍鷗iOS培訓學校周末班的課程小節,主要是分配內容管理的方法介紹及釋放內存方法介紹,希望能夠對你有所幫助。內存管理基本上分為以下幾點:
一、釋放內存步驟:
1、調用函數free()釋放掉空間
注意:1.不可以使用free()掉后的空間
2、free()后,最好將指針置為NULL,因為如果不做這步處理,
原來的指針依舊指向剛才釋放的空間,可以繼續操作
3、避免重復釋放空間
在Unix系統上,提供了函數alloca()函數,可以實現在棧空間上分配指定大小的空間,這樣的好處是,函數結束后,空間自動釋放,不必顯式地調用函數free(),但是該函數有很多弊端,比如不可移植等,因此不建議使用。
在這里需要注意的是malloc、calloc、realloc函數的底層實現,在Linux系統中,提供了brk()和sbrk()函數,那么上面這幾個函數就是在通過這兩個函數實現的。
*p5==*p6因為"hello"是字符串常量,定義后會在常量去開辟一塊空間存儲hello,
因為是在常量區不可修改,所以就不用再另外新申請一塊新空間去存儲另一個"hello",所以,那么p5,p6指的是一塊區域。
二、分配內存:
1.申明一個指定類型的指針
2.計算要分配空間的大小,一般使用函數sizeof()來實現
3.調用函數malloc()完成空間的申請,將函數的返回值賦給指針變量,
4.檢查返回值是否不為NULL,保證空間分配成功
5.分配好的空間是沒有經過初始化的,其中可能包含一些垃圾信息,因此
調用函數memset()將其用0來填充,也是個不錯的方法呢!大家可以試一下的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。