(C語言)內存操作函數

memcpy

void* memcpy(void* dest,const void* src,size_t num)

內存拷貝,可以拷貝任意類型
不考慮’\0’
功能:函數memcpy從src的位置開始向後複製num個字節的數據到dest的內存位置
說明:

  • 這個函數在遇到’\0’不會停下來
  • 如果src與dest任何的重疊,複製結果都是未定義的

memmove

void* memmove(void* dest,const void* src,size_t num)

功能:和memcpy區別在於dest與src內存塊可以重疊

memcmp

int memcmp(const void* ptr1,const void* ptr2,size_t num)

功能:比較內存區域buf1和buf2的前count個字節。該函數是按字節比較的
返回值:
當buf1 < buf2時,返回值<0
當buf1 = buf2時,返回值=0
當buf1 > buf2時,返回值>0

memchr

void* memchr(const char* ptr ,int value,sizez_t num)

功能:從buf所指內存區域的前count個字節查找字符ch。
返回值:當第一次遇到字符ch時停止查找。如果成功,返回指向字符ch的指針;否則返回NULL

memset

void* memset(void* str,int value,size_t num)

按字節設置,進行賦值
功能:以str的起始位置開始的n個字節的內存區域用整數value進行填充
返回值:目標str內存起始地址
說明:

  • memset用來對一段內存空間全部設置爲某個字符,一般用在對定義的字符串進行初始化爲‘ ’或‘/0’
  • 如果用malloc分配的內存,一般只能使用memset來初始化
  • memset可以方便的清空一個結構類型的變量或數組,它可以一字節一字節地把整個數組設置爲一個指定的值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章