C語言中記憶體操作函式

2021-06-19 07:29:39 字數 1494 閱讀 3242

一、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...