C memset memmove memcpy函数

Kefira ·
更新时间:2024-11-14
· 807 次阅读

memset:

头文件:
原型:void * memset( void * ptr, int value, size_t num );
ptr:指向首地址的指针
value:要设置的值
num:要设置多少个字节的空间

#include #include int main(){ int i; char a[10]={'y','y','y','y','y','y','y','y','y','y'}; memset(&a[5],'c',5); for(i=0;i<=9;i++){ printf("%c ",a[i]); } return 0; } <y y y y y c c c c c memmove & memcpy: 拷贝一定长度的内存的内容

头文件:
原型:
void *memmove(void *a, const void *b, size_t count);
void *memcpy(void *dst, const void *src, size_t count);
将 b~b+count 赋到 a~a+count上
当内存发生局部重叠的时候:
memmove保证结果正确,memcpy不保证结果正确。

实际上,memcpy只是memmove的一个子集
memmove的实例:

#include #include int main(){ int i; char s[] = "1234567890"; char* p1 = s; char* p2 = s+2; memmove(p2, p1, 5); for(i=0;i<=9;i++){ printf("%c ",s[i]); } return 0; }

输出1 2 1 2 3 4 5 8 9 0


作者:清甜典明粥



memcpy函数 memcpy memset

需要 登录 后方可回复, 如果你还没有账号请 注册新账号