malloc函式定義在#include 的標頭檔案中,函式原型的void *malloc(unsigned int ret)型別如果申請不成功就會返回null,void * 是一種不指定指向的指標,可以是任意的指標,但是得強制轉換型別,如 :
以下**片段
int *p;
p=(int *)malloc(4);
malloc函式一般是跟free()函式結合使用,因為malloc函式是在堆裡面尋找的記憶體,這是由我們程式設計師自己管理的記憶體,所以使用之後要記得用free()函式釋放記憶體,要不然就會造成記憶體洩漏。
**常見的一種錯誤情況
**就是在自定義的函式裡面申請了malloc函式的記憶體,然後通過return語句想返回指標首位址,其實這是錯誤的用法,因為函式是儲存在棧上面的,他會自動釋放記憶體,當離開函式時,函式裡面的區域性變數都會釋放,所以return語句返回的是乙個野指標,是非法的操作,並且if()等判斷語句對野指標不起作用,所以一定要搞清楚存放的記憶體及他們的變化。
記憶體分配malloc函式注意事項。
malloc的全稱是memory allocation,中文叫動態記憶體分配,用於向系統申請分配指定位元組的記憶體空間 原型 extern void malloc unsigned int num bytes 看原型很頭疼,來兩個例子 int p p int malloc sizeof int 12...
使用malloc的注意事項
有時候在函式中使用malloc時,如果分配記憶體失敗,可能會打算讓函式直接返回,例如 char t t malloc 4 if t null return 1 else 但是如果使用了多次malloc,就要注意在判斷到某次分配失敗而導致返回時,將已經分配了的空間釋放掉。雖然通常在函式的結尾處不會忘記...
函式的注意事項
1 函式的形參列表可以是多個,返回值列表也可以是多個。2 形參列表和返回值列表的資料型別可以是值型別和引用型別 3 函式的命名遵循識別符號命名規範,首字母不能是數字,首字母大寫該函式可以被本報檔案和其它包檔案使用,類似public,首字母小寫,只能被本包使用,其它包檔案不能使用,類似private ...