搜索
查看: 1181|回复: 6
打印 上一主题 下一主题

函数memmove

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-18 19:53:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
作用移动一块字节
程序例:#include <string.h>#include <stdio.h>int main(void){  char *dest = "abcdefghijklmnopqrstuvwxyz0123456789";  char *src = "******************************";  printf("destination prior to memmove: %s\n", dest);  memmove(dest, src, 26);  printf("destination after memmove:    %s\n", dest);  return 0;}
沙发
发表于 2012-12-19 11:03:38 | 只看该作者
这个是做什么的啊
板凳
 楼主| 发表于 2012-12-19 22:56:12 | 只看该作者
[mw_shl_code=c,true]#include <string.h>#include <stdio.h>int main(void){  char *dest = "abcdefghijklmnopqrstuvwxyz0123456789";  char *src = "******************************";  printf("destination prior to memmove: %s\n", dest);  memmove(dest, src, 26);  printf("destination after memmove:    %s\n", dest);  return 0;}[/mw_shl_code]
地板
发表于 2012-12-20 02:13:26 | 只看该作者
有什麼用處???
5#
发表于 2014-10-1 23:36:59 | 只看该作者
#include <string.h>
#include <stdio.h>
int main(void)
{  
    char *dest = "abcdefghijklmnopqrstuvwxyz0123456789";  
    char *src = "******************************";  
    printf("destination prior to memmove: %s\n", dest);  
    memmove(dest, src, 26);  
    printf("destination after memmove:    %s\n", dest);  
    return 0;
}
6#
发表于 2014-10-6 20:26:52 | 只看该作者
我似乎看出來了一小點,是不是如果memmove函數的第三個參數是n的話,就表示在dest的第n個字符後面的所以數據都改成src的內容?反正我是不能在啊哈C運行的。
7#
发表于 2014-10-6 21:45:16 | 只看该作者
Amath13 发表于 2014-10-6 20:26
我似乎看出來了一小點,是不是如果memmove函數的第三個參數是n的話,就表示在dest的第n個字符後面的所以數 ...

  1. void memcpy(void* dest, void* src, size_t num)
  2. {
  3.   int i;
  4.   char* to = dest;
  5.   char* from = src;
  6.   for(i=0; i!=num; ++i)
  7.     to[i] = from[i];
  8.   return dest;
  9. }

  10. void* memmove(void* dest, void* src, size_t num)
  11. {
  12.     char* buf = malloc(num);
  13.     memcpy(buf, src, num);
  14.     memcpy(dest, buf, num);
  15.     free(buf);
  16.     return dest;}
复制代码


含义都是把num个字节的二进制数据从src拷贝到dest
memmove保证src和dest有重合区段时不会发生错误

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表