一、malloc/calloc
名稱:
malloc/calloc
功能:動態記憶體分配函式
標頭檔案:
#include
函式原形:
void *malloc(size_t size);
void *calloc(size_t num,size_t size);
引數:
size
分配記憶體塊的大小
num分配記憶體塊的個數
返回值:
成功返回分配記憶體塊的首位址,失敗返回null.
malloc
和calloc都可以分配記憶體區,但malloc一次只能申請乙個記憶體區,calloc一次可以申請多個記憶體區.另外calloc會把分配來的記憶體區初試化為0,malloc不會進行初始化.
#include
#include
main()
*p=3;
printf("%d\n",*p);
free(p); }
二、
free名稱:
free 功能
: 動態記憶體釋放函式
標頭檔案:
#include
函式原形:
void free(void *ptr); 引數
: ptr
使用malloc
或calloc
等記憶體分配函式所返回的記憶體指標
返回值:
無 free
可以釋放由
malloc
或calloc
等記憶體分配函式分配的記憶體
.當程式很大時
,期間可能要多次動態分配記憶體
,如果不及時釋放的話
,程式將要占用很大記憶體
. 要注意,如果ptr所指記憶體已被釋放或是未知的記憶體位址,則可能有無法預期的情況發生.若引數為null,則free不會有任何作用.
三、memset
名稱:
memset
功能:初始化所指定的記憶體空間
標頭檔案:
#include
函式原形:
void *memset(void *buffer,int c,int count);
引數:
buffer
分配的記憶體
c 初始化內容
count
初始化的位元組數
返回值:
返回指向buffer的指標
memset
把buffer所指記憶體區域的前count個位元組設定成某個字元的ascll值.一般用於給陣列,字串等型別賦值.
main()
執行結果:p1
使用者輸入int型陣列長度,實現倒置,然後釋放該區域
c語言中的記憶體操作函式
int arr 20 再定義並初始化的時候可以這樣操作 arr 20 不能這樣修改陣列的值。語法錯誤。int str 20 將一塊記憶體初始化乙個值 memset arr 0 sizeof arr 第乙個引數表示初始化位址,第二個引數表示初始化值,第三個引數表示初始化記憶體大小。memcpy arr...
c語言記憶體操作函式
一 malloc calloc 名稱 malloc calloc 功能 動態記憶體分配函式 標頭檔案 include h 函式原形 void malloc size t size void calloc size t num,size t size 引數 size 分配記憶體塊的大小 num分配記憶...
C語言 記憶體操作函式
1.memset 函式 進行記憶體的設定 設定的數要在0 255的範圍內 讀取設定的記憶體時要按字元讀取,也就是ascii碼表示。include include intmain printf n return0 2.memcpy 函式 針對記憶體進行複製 include include intmai...