1:malloc概述
malloc(num)動態申請num位元組的記憶體空間,函式申請成功返回記憶體的起始位址(void型),申請不成功返回null指標,malloc不初始化記憶體空間;calloc(type,num)函式會初始化申請的記憶體空間為0;使用完申請的記憶體後需要用free(*p)釋放記憶體並且將指標p=null,防止野指標;
以下**在ubuntu10.04上驗證,gcc編譯器;
2:一維記憶體動態申請
#include #include int main()
{ char i = 0;
char num = 10;
char *ptr = null;
ptr = (char *)malloc(sizeof(char)*(num+1)); //多申請乙個位元組,用於存放字串結束符'\0'
//ptr = (char *)calloc(num+1,sizeof(char)); //申請num*sizeof(char)的空間並且初始化記憶體空間為0,如果空間是指標型別的變數,則為null
if(ptr != null) //申請成功
{ for(i=0;i
3:二維記憶體動態申請
#include #include #include int main()
{ char i = 0,j = 0;
char m = 5; //行
char n = 3; //列
char num = 'a';
char **ptr = null; //定義乙個雙指標
ptr = (char **)malloc(sizeof(char *)*m); //動態申請(sizeof(char *))個位元組的空間存放指標,這些指標指向二維陣列中每行的首位址
//ptr = (char *)calloc(m,sizeof(char *)); //申請num*sizeof(char)的空間並且初始化指標型別為null
if(ptr == null)
exit(1); //結束程序
for(i=0;i
關於動態申請記憶體malloc的知識
關於malloc申請記憶體的函式 一 定義 malloc函式是一種分配長度為num bytes位元組的記憶體塊的函式,可以向系統申請分配指定size個位元組的記憶體空間。malloc的全稱是memory allocation,中文叫動態記憶體分配,函式返回的型別是void 型別。void 表示未確定...
malloc申請堆記憶體
malloc申請空間時,記錄其空間大小 其空間上方,有乙個資料頭,頭部資訊就記錄了申請空間的大小 當呼叫free函式時,即需要讀取頭部資訊得到需要釋放的位元組數 malloc申請的空間,一 申請的記憶體 小的靠近資料區 大的靠近棧區,而中間的是 無人區 malloc工作在user space 使用者...
malloc函式申請動態記憶體的用法
咱們開門見山吧,直接上 更容易理解 an highlighted block 1 include 2 include 3 include 45 struct student 6 1011 intmain 1220 21 p student name tom 22 p student age 23 2...