一、
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分配記憶體塊...