C malloc動態分配記憶體

2021-10-23 06:12:40 字數 1169 閱讀 1851

#include

#include

intmain()

;//靜態分配陣列

int length;

printf

("請輸入你需要分配的陣列長度:");

scanf

("%d"

,&length)

;int

* parr =

(int*)

malloc

(sizeof

(int

)* length)

;//malloc為分配記憶體的函式,返回第乙個位元組的位址,但是預設返回是乙個幹位址(無法知道位址代表的是幾個位元組的位址),沒有實際意義,必須加強制型別轉換為指定的指標型別才有意義,(int *)表示強轉為int型別的指標。

/* //我們可以把parr當作乙個普通的陣列來使用

*parr = 10; //類似於a[0] = 10;

parr[1] = 20; //類似於a[1] = 20;

cout << *parr << "\n" << parr[1];

*/free

(parr)

;//把parr所代表的動態分配的記憶體釋放

return0;

}

靜態呼叫函式時,在函式呼叫結束後,占用的記憶體會自動釋放。

要想跨函式使用記憶體,而記憶體不會自動釋放,可以通過malloc函式。

main()

intfun

(int

** q)

乙個例子

# include

# include

struct student

;struct student*

createstudent

(void);

void

showstudent

(struct student*);

intmain

(void

)void

showstudent

(struct student* pst)

struct student*

createstudent

(void

)

c malloc分配記憶體

php中的記憶體分配有用類似emalloc這樣的函式,emalloc實際上是c語言中的malloc的一層封裝,php啟動後,會向os申請一塊記憶體,可以理解為記憶體池,以後的php分配記憶體都是在這塊記憶體池中進行的,以至於efree,也不會向os退回記憶體,而只是設定標誌位,標識efree這塊記憶...

記憶體動態分配

陣列的元素儲存於記憶體中連續的位置上。當乙個陣列被宣告時,它所需要的內存在編譯時就被分配。但是,你也可以使用動態記憶體分配在執行時為它分配記憶體。malloc所分配的是一塊連續的記憶體。例如,如果請求它分配100個位元組的記憶體,那麼它實際分配的記憶體就是100個連續的位元組,並不會分開位於兩塊或多...

動態分配記憶體

動態記憶體分配即分配記憶體大小在執行時才確定,一般在堆中分配。c語言動態記憶體分配相關的函式。include void malloc size t size malloc的使用比較直接,乙個成功的malloc呼叫返回分配的size大小的記憶體的指標。失敗時返回null並將錯誤 置為enomem。教材...