動態記憶體分配
靜態記憶體分配陣列 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 #includeint 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 ...