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可以方便的清空一個結構類型的變量或數組,它可以一字節一字節地把整個數組設置爲一個指定的值