malloc為動態記憶體分配,申請一塊連續的指定大小的記憶體塊區域以void*型別返回分配的記憶體區域位址;函式標頭檔案:#include
申請得到的為連續的儲存空間,如果分配失敗,則返回乙個空指標(null)
函式引數為指定的位元組數
最後用free()函式釋放記憶體(free釋放記憶體問題)
malloc(0)屬於合法語句,它能返回乙個合法的指標(有一說法是,當malloc分配記憶體時它除了分配我們指定size的記憶體塊,還會分配額外的記憶體來儲存我們的記憶體塊資訊,用於維護該記憶體塊)
#include
#include
void
main()
指標名=(資料型別*)realloc(要改變記憶體大小的指標名,新的大小),首先判斷ptr指向的區域是否有足夠的空間,如果有,則增大(或減少)該記憶體區域,然後將ptr返回;如果ptr指向的區域沒有足夠的空間,則分配一段新的記憶體區域,並且將原ptr的資料拷貝到新的記憶體區域,釋放ptr指向的記憶體區域(內部完成,不需要外部使用free),同時返回新分配的記憶體區域的首位址。即重新分配儲存器塊的位址函式標頭檔案:#include
改變的區域可以比舊記憶體區域大或小
如果分配失敗,則返回空指標null,原來的指標仍然有效(此時ptr所指的舊記憶體區域並沒有被釋放,需要用free函式釋放這一部分記憶體,因此不能直接賦值給ptr,這樣將導致ptr指標變為空指標,使舊記憶體區域無法得到釋放 )
char
*dilatation
(char
* p,
int n)
return q;
}
在記憶體的動態儲存區中分配num個長度為size的連續空間;注意:num:物件個數,size:物件佔據的記憶體位元組數,相較於malloc函式,calloc函式會自動將記憶體初始化為0
#include
#include
intmain()
C語言的幾個函式
一 strcat函式 在標準函式中,strcat函式是在檔案中宣告.strcat函式作用是指把第二個字串的所有元素追加到第乙個字串的尾部。string.h strcat宣告定義 extern char strcat char const char 在追加過程中,並不會檢測s所指的記憶體空間容量和內容...
C (建構函式 析構函式 動態申請空間)
include include using namespace std 整型陣列 class intarray 動態陣列 修改元素 void intarray mod int index,int value 定位指定下標元素 int intarray at int index 構造方法 intarr...
c語言常用的幾個函式
strcpy函式 2 如何給字串進行賦值 a 字串不能直接賦值 b 目前而言。給字串賦值的方法是通過strcpy函式 c strcpy函式需要string.h的標頭檔案的支援 d 在使用strcpy函式時不能把大串賦值給小串 格式 strcpy 字串1,字串2 相當於是字串1 字串2 strlen函...