void型別的使用:
(1)當函式不需要返回值時就使用void來定義,例如:void max(int a,int b);
(2)當函式不需要引數時使用,void max(void);
void指標型別:它不指向任何資料型別。
void *p,int *q,int a;
p = &a;//其他型別賦值給void型別,不用強制轉換,系統自動轉換
q = (int *)p;//強制轉換成整形
void 型別指標可以轉換為任意型別。
記憶體動態分配:
(1)malloc函式:void *malloc(unsigned int size);//函式原型
分配乙個size位元組的連續空間。
int *p;
p = (int *)malloc(100*sizeof(int));分配400位元組。
(2)calloc函式:void * calloc(unsigned n,unsigned size);//函式原型。
分配n個長度為size位元組的空間。
(3)free函式:void free(void *p);
釋放指標p所指向的動態空間,以使這部分空間供其他變數使用。
(4)realloc函式:void * realloc(void *p,unsigned int size);
通過malloc開闢的空間,可以通過realloc重新分配,特別是當空間不足時,使用realloc擴大空間。
C語言的動態記憶體分配與void指標型別
目錄 1.什麼是動態記憶體分配 2.怎麼動態記憶體分配和釋放 3.void指標型別 參考資料 1 譚浩強.c程式設計 第四版 j 計算機教育,2010,no.128 20 113 113.1.什麼是動態記憶體分配 1 全域性變數的記憶體空間分配在靜態儲存區 2 非靜態的區域性變數 包括函式形參 分配...
談談記憶體分配與動態記憶體分配
記憶體分配 程式在記憶體中是分段儲存的。段 存放語句轉換的二進位制 程式執行時不可修改 全域性段 靜態儲存區 用來記錄全域性變數和靜態變數的儲存位置 不會隨著程式的執行而改變 棧 由編譯器自動分配釋放,存放區域性變數,塊變數,形式引數和返回值的儲存位置 隨著程式的執行其大小將不斷改變 函式呼叫時,開...
動態記憶體分配
在c 中建立乙個物件時,我們必須要為這個物件申請一塊記憶體,而且要用建構函式對這塊記憶體進行初始化。c 中的new和delete相對於c的庫函式malloc和free在這方面有很大的優勢,所以我們主要講的是運算子new和delete。當用new來建立乙個物件時,它會自動在堆裡為物件分配記憶體並且為這...