C語言 資料結構 預備知識動態記憶體分配

2021-09-27 09:05:58 字數 583 閱讀 9141

動態記憶體分配

靜態記憶體分配陣列 int a[5]=

動態記憶體分配陣列

int len=5;

int *parr=(int *)malloc(sizeof(int) * len);

1.分配了

4*5 =20

個位元組的記憶體空間,返回了第乙個位元組的位址

2.第乙個位元組的位址無意義,所以強制轉成

int型別的位址

int *

3.parr此時指向第乙個位元組的位址,相當於

a,當成普通陣列使用

*parr=4 <===> a[0]=4

parr[1] <===> a[1]

4.釋放記憶體

free(parr) 把

parr

所代表的動態分配的

20個位元組記憶體釋放

#include #include 

int main(void

)

for(i=0;i)

//釋放記憶體

free

(parr);

}

c語言資料結構預備知識

1 定義 a.位址 記憶體單元的編號 從0開始的非負整數 b.指標 指標就是位址,位址就是指標 指標變數是存放記憶體單元位址的變數 指標的本質是乙個操作受限的非負整數 2 基本型別的指標int i 10 int p i 等價於int p p i p 11 printf d d i,p 11 11總結...

C語言 資料結構 預備知識指標

所有的偉大源於乙個勇敢的開始 資料結構預備知識 指標1.指標 是 c語言的靈魂,指標 位址 int p p是指標變數,int 表示該p 變數只能儲存 int型別變數的位址,不能存放別的型別的 int i 10 p i 詳細這兩部操作 1 p 存放了i 的位址,所以我們說 p指向了 i2 p和 i是完...

C語言 資料結構 預備知識跨函式使用記憶體

跨函式使用記憶體 乙個函式執行結束,使用malloc函式分配的記憶體,如果不呼叫free,就不會釋放 在另乙個函式中還可以繼續使用 include include 跨函式使用記憶體 傳遞結構體指標,占用記憶體少 struct student struct student createstudent ...