void
*malloc
(size_t size)
;//開闢一塊連續size位元組的空間
引入
//int a[3];
int*a=
(int*)
malloc(3
*sizeof
(int))
;int i;
for(i=
0;i<
3;i++
) a[i]
=i;for
(i=0
;i<
3;i++
)printf
(" %d "
,a[i]);
free
(a);
int n,i;
printf
("請輸入學生的個數:");
scanf
("%d"
,&n)
;int
*p; p=
(int*)
malloc
(n*sizeof
(int))
;for
(i=0
;i)printf
("**********************\n");
for(i=
0;i)printf
("%d個學生的成績為:%d\n"
,i+1
,*p++
);
1.程式剛執行的時候正常,時間長後崩潰
如:此程式作為記憶體洩漏典例,請謹慎執行
while(1
)
避免
>
1.迴圈中有無一直在申請
2.有無及時釋放 free
(p) p=
null
;避免變成野指標
int
*p;//野指標
//野指標指向哪不清晰,有危險
int*p=
null
;//非野指標
無型別與無型別指標
無型別,又為抽象型別 沒有對應的實體,不能直接定義變數,但可以定義指標。1 失去指標指向的功能 2 p指標此時不具有 1的能力。在gcc編譯器下,無型別指標課加1。void 是一種特別的指標,因為它沒有指向的型別,或者說不能根據這個型別判斷出指向物件的長度。void 指標具有以下特點 1.任何指標 ...
關於無型別指標的使用
今天在工作時發現程式有可以優化的地方,程式中本來有乙個結構體a,然後a這個結構體中包含了若干個結構體bcdef等等。本意是將這若干個結構體的資料通過socket傳送出去,原本每乙個結構體都會有乙個傳送函式,現在想將它優化成乙個傳送函式。那麼問題來了?這個函式的形參怎麼設定?指向結構體中的結構體的指標...
野指標,空指標和無型別指標
一.野指標 所謂的野指標指的是乙個指標變數指向了不可使用的記憶體空間。產生野指標三個原因 1 指標變數建立時候沒有被初始化 任何指標變數在建立的時候,不會自動成為null指標,它的預設值是隨機的,因此該指標就會成為乙個野指標,可能指向一塊不可使用的記憶體空間。例如char p 這樣建立乙個指標p,指...