void型別與動態記憶體分配

2021-08-16 05:21:53 字數 759 閱讀 2089

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來建立乙個物件時,它會自動在堆裡為物件分配記憶體並且為這...