相关函数: bcopy(), memccpy() , memcpy() , strcpy(), strncpy() 表头文件: #include 定义函数: void *memmove(void *dest, const void *src, size_t n); 函数说明: memmove()与memcpy()一样都是用来拷贝src所指的内存内容前n个字节到dest所指的地址上。不同的是,当src和dest所指的内存区域重叠时,memmove()仍然可以正确的处理,不过执行效率上会比使用memcpy()略慢些。 返回值: 返回指向dest的指针。 附加说明: 指针src和dest所指的内存区域可以重叠。 memcpy()、 memmove()和memccpy() ------------------------------------------------------- 这三个函数的功能均是将某个内存块复制到另一个内存块。前两个函数的区别在于它们处理内存区域重叠(overlapping)的方式不同。第三三个函数的功能也是复制内存,但是如果遇到某个特定值时立即停止复制。 对于库函数来说,由于没有办法知道传递给他的内存区域的情况,所以应该使用memmove()函数。通过这个函数,可以保证不会出现任何内存块重叠问题。而对于应用程序来说,因为代码“知道”两个内存块不会重叠,所以可以安全地使用memcpy()函数。 ------------------------------------------------------- #include #include int main() { char s[] = "zengxiaolong"; memmove(s, s 4, strlen(s)-4); s[strlen(s)-4] = '\0'; printf("*s = %s\n", s); return 0; } |
|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )
GMT+8, 2024-9-29 21:28 , Processed in 0.242851 second(s), 12 queries , Gzip On, MemCache On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.