溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

iOS培訓(xùn)整理——C語言 分配內(nèi)存管理

發(fā)布時(shí)間:2020-05-29 20:45:46 來源:網(wǎng)絡(luò) 閱讀:440 作者:藍(lán)鷗劉輝 欄目:移動(dòng)開發(fā)

這一次整理出來的是有關(guān)藍(lán)鷗iOS培訓(xùn)學(xué)校周末班的課程小節(jié),主要是分配內(nèi)容管理的方法介紹及釋放內(nèi)存方法介紹,希望能夠?qū)δ阌兴鶐椭?。?nèi)存管理基本上分為以下幾點(diǎn):

一、釋放內(nèi)存步驟:

1、調(diào)用函數(shù)free()釋放掉空間

注意:1.不可以使用free()掉后的空間

2、free()后,最好將指針置為NULL,因?yàn)槿绻蛔鲞@步處理,

原來的指針依舊指向剛才釋放的空間,可以繼續(xù)操作

3、避免重復(fù)釋放空間

在Unix系統(tǒng)上,提供了函數(shù)alloca()函數(shù),可以實(shí)現(xiàn)在棧空間上分配指定大小的空間,這樣的好處是,函數(shù)結(jié)束后,空間自動(dòng)釋放,不必顯式地調(diào)用函數(shù)free(),但是該函數(shù)有很多弊端,比如不可移植等,因此不建議使用。

在這里需要注意的是malloc、calloc、realloc函數(shù)的底層實(shí)現(xiàn),在Linux系統(tǒng)中,提供了brk()和sbrk()函數(shù),那么上面這幾個(gè)函數(shù)就是在通過這兩個(gè)函數(shù)實(shí)現(xiàn)的。

iOS培訓(xùn)整理——C語言 分配內(nèi)存管理

*p5==*p6因?yàn)?hello"是字符串常量,定義后會(huì)在常量去開辟一塊空間存儲(chǔ)hello,

因?yàn)槭窃诔A繀^(qū)不可修改,所以就不用再另外新申請(qǐng)一塊新空間去存儲(chǔ)另一個(gè)"hello",所以,那么p5,p6指的是一塊區(qū)域。

iOS培訓(xùn)整理——C語言 分配內(nèi)存管理

二、分配內(nèi)存:

1.申明一個(gè)指定類型的指針

2.計(jì)算要分配空間的大小,一般使用函數(shù)sizeof()來實(shí)現(xiàn)

3.調(diào)用函數(shù)malloc()完成空間的申請(qǐng),將函數(shù)的返回值賦給指針變量,

4.檢查返回值是否不為NULL,保證空間分配成功

5.分配好的空間是沒有經(jīng)過初始化的,其中可能包含一些垃圾信息,因此

調(diào)用函數(shù)memset()將其用0來填充,也是個(gè)不錯(cuò)的方法呢!大家可以試一下的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI