c語言記憶體操作函式

2021-08-28 15:50:51 字數 1505 閱讀 1048

一、

malloc/calloc

名稱:malloc/calloc

功能:動態記憶體分配函式

標頭檔案:

#include

.h>

函式原形:

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

.h>

函式原形:

void free(void *ptr);

引數:

ptr   使用malloc或calloc等記憶體分配函式所返回的記憶體指標

返回值:

無free 可以釋放由malloc或calloc等記憶體分配函式分配的記憶體.當程式很大時,期間可能要多次動態分配記憶體,如果不及時釋放的話,程式將要占用很大記憶體.

要注意,如果ptr所指記憶體已被釋放或是未知的記憶體位址,則可能有無法預期的情況發生.若引數為null,則free不會有任何作用.

三、memset

名稱:memset

功能:初始化所指定的記憶體空間

標頭檔案:

#include

.h>

函式原形:

void *memset(void *buffer,int c,int count);

引數:

buffer      分配的記憶體

c 初始化內容

count      初始化的位元組數   

返回值:

返回指向buffer的指標

memset把buffer所指記憶體區域的前count個位元組設定成某個字元的ascll值.一般用於給陣列,字串等型別賦值.

main()

{ int *p=null;

int i;

char *q=null;

p=(int *)malloc(sizeof(int)*10);

if(p==null)

exit(1);

memset(p,0,sizeof(int)*10);

q=p;

for(i=0;i<10;i++)

printf("%d",*(q++));

free(p);

C語言 記憶體操作函式

1.memset 函式 進行記憶體的設定 設定的數要在0 255的範圍內 讀取設定的記憶體時要按字元讀取,也就是ascii碼表示。include include intmain printf n return0 2.memcpy 函式 針對記憶體進行複製 include include intmai...

C語言記憶體操作函式彙總

一 malloc calloc 名稱 malloc calloc 功能 動態記憶體分配函式 標頭檔案 include h 函式原形 void malloc size t size void calloc size t num,size t size 引數 size 分配記憶體塊的大小 num 分配記...

C語言中記憶體操作函式

一 malloc calloc 名稱 malloc calloc 功能 動態記憶體分配函式 標頭檔案 include 函式原形 void malloc size t size void calloc size t num,size t size 引數 size 分配記憶體塊的大小 num分配記憶體塊...