c语言’内存清除函数,c语言常用内存处理函数
memset()
#includevoid*memset(void*s,int c,size_t n);
功能:
將s的內存區域的前n個字節以參數c填入(用來初始化)
參數:
s:需要操作內存s的首地址
c:填充的字符,c雖然參數為int,但必須是unsigned char,范圍為0-255
n:指定需要設置的大小
返回值:
s的首地址
memcpy()
#includevoid *memcpy(void *dest,const void *src,size_t n)
功能:
拷貝src所指的內存內容的前n個字節到dest所指的內存地址上
參數:
dest :目的內存首地址
src:源內存首地址
n:需要拷貝的字節數
注意:dest所指內存和src所指內存地址不可以重疊
例:
int arr[]={1,2,3,4,5,6,7,8,9};
int*p=arr;
p++;
memcpy(p,arr,36);//錯誤
此時p所指地址和arr所指地址有重疊
返回值:
dest的首地址
與strcpy()區別
函數參數不同
strcpy()拷貝字符串memcpy()可以拷貝一塊內存
拷貝結束標志不同,strcpy()以\0結尾,memcpy()以個數為結尾
mommove()
#includevoid *memcpy(void *dest,const void *src,size_t n)
功能:
拷貝src所指的內存內容的前n個字節到dest所指的內存地址上
拷貝重疊內存地址不會出現問題,但是效率比較低,如果拷貝源與拷貝沒有重疊,效率與memcpy一樣
memcmp()
#includeint memcmp(const void*s1,const void*s2,size_t n);
功能:
比較s1和s2所指向內存區域的前n個字節大小
參數:
s1:內存首地址1
s2:內存首地址2
n:需比較的前n個字節
返回值:
相等:=0
大于:>0
小于:<0
free(堆空間釋放)
#includevoid free(void* ptr);
功能:
釋放ptr所指向的一塊內存空間,ptr是一個任意類型的指針變量,指向被釋放區域的首地址,對同一內存空間多次釋放會出錯
參數:
ptr:需要釋放空間的首地址,被釋放區應是由malloc函數所分配的區域
返回值:
無
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的c语言’内存清除函数,c语言常用内存处理函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c的关于数组初始化 和 memset用法
- 下一篇: 为什么int型的数组用memset不能清