C C 基礎 指標(3)

2021-10-06 04:18:38 字數 1218 閱讀 8080

在c中使用動態記憶體,可以使用malloc來動態開闢一段空間。

int

* p =

(int*)

malloc

(sizeof

(int)*

10);

上面所示的例子就是使用malloc開闢動態記憶體的例子。使用malloc開闢動態記憶體返回的是乙個void型別的指標。可以使用型別轉換來使用乙個指標來儲存這個位址。

動態開闢的記憶體需要手動釋放。使用free(),來對資料進行釋放。

free

(p)

動態開闢的記憶體如果沒有及時的釋放,將導致記憶體的洩露。

#include

#include

intmain

(int argc,

char

const

*ar**)

free

(p);

return0;

}

上面開闢了10次記憶體,但卻只釋放了最後一次開闢開闢的記憶體,前面9次開闢的記憶體的首位址都找不到了。使用下面的方法可以將申請的記憶體都釋放掉。

#include

#include

intmain

(int argc,

char

const

*ar**)

for(

int i =

0; i <

10; i++

)return0;

}

野指標的意思就是指標所指向的位址被釋放掉。

int

* p =

(int*)

malloc

(sizeof

(int)*

10);free

(p);

*p =

10;

前面所示的**中,動態申請的記憶體的被釋放掉,但p中任然保留原來的位址,此時通過p解引用來使用記憶體就會出現野指標的情況。這塊記憶體現在已經不歸p所有,但是p還是對其進行了訪問。

#include

#include

intmain

(int argc,

char

const

*ar**)

return0;

}

C C 基礎 this指標

this 是 c 中的乙個關鍵字,也是乙個 const 指標,它指向當前物件,通過它可以訪問當前物件的所有成員。所謂當前物件,是指正在使用的物件。例如對於stu.show stu 就是當前物件,this 就指向 stu。下面是使用 this 的乙個完整示例 include using namespa...

C C 基礎 指標(5)

二級指標的示意如上圖所示 變數int a的內容是255,其位址是0x0000ffff,int p是乙個指標,指標存的是a的位址,指標的位址是0xfbc00000 int pp是乙個二級指標,指標存的是乙個位址,該位址是一級指標p所在的位址。include include 為指標變數分配記憶體 voi...

C C 中的指標(筆記) 指標基礎知識總結

記憶體區的每乙個位元組都有乙個編號,就是 位址 如果在程式中定義了乙個變數,在對程式進行編譯或者執行時,系統會給這個變數分配記憶體單元,並確定他的記憶體位址 編號 指標的實質就是記憶體位址,指標就是位址,位址就是指標 通常我們敘述時會把指標變數簡稱為指標,實際他們的含義不一樣 1指標也是一種資料型別...