这两天做uTenux实验,经常会碰到一些内存块的操作,这里汇总一下。供参考。
void *memcpy(void *dest, const void *src, size_t n);
从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中memmove
原型:void *memmove( void* dest, const void* src,size_tcount );
头文件:
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:
memmove用于从src拷贝count个字符到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。但复制后src内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同。
int memcmp(const void *buf1, const void *buf2, unsigned int count);
比较内存区域buf1和buf2的前count个字节。
当buf1
当buf1=buf2时,返回值=0
当buf1>buf2时,返回值>0
memchr 原型:extern void *memchr(const void *buf, int ch, size_t count);
用法:#include
功能:从buf所指内存区域的前count个字节查找字符ch。
说明:当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL。
void *memset(void *s, int ch, size_t n);
函数解释:将 s 中前 n 个字节 (typedef unsigned int size_t)用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。