zoukankan      html  css  js  c++  java
  • 内存的移动和拷贝

    1. // 功能:由src所指内存区域复制count个字节到dest所指内存区域。  
    2. // 说明:src和dest所指内存区域可以重叠,但复制后dest内容会被更改。函数返回指向dest的指针  
    3. void *memmove(void *dest , const void *src , size_t count)  
    4. {  
    5.     assert( (dest != NULL) && (src != NULL));     //安全检查  
    6.     assert( count > 0 );  
    7.   
    8.     char *psrc = (char *) src;  
    9.     char *pdest = (char *) dest;  
    10.     //检查是否有重叠问题  
    11.     if( pdest < psrc )  
    12.     {  
    13.         //正向拷贝  
    14.         while( count-- )  
    15.             *pdest++ = *psrc++;  
    16.     }  
    17.     else if( psrc < pdest )  
    18.     {  
    19.         //反向拷贝  
    20.         psrc = psrc + count - 1;  
    21.         pdest = pdest + count - 1;  
    22.         while( count-- )  
    23.             *pdest-- = *psrc--;  
    24.     }  
    25.     return dest;  
    26. }  
    27.   
    28. // 功能:由src指向地址为起始地址的连续n个字节的数据复制到以dest指向地址为起始地址的空间内。  
    29. // 说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针  
    30. void *memmcpy(void *dest , const void *src , size_t count)  
    31. {  
    32.     assert( (dest != NULL) && (src != NULL));     //安全检查  
    33.     assert( count > 0 );  
    34.   
    35.     char *psrc = (char *) src;  
    36.     char *pdest = (char *) dest;  
    37.     while( count-- )  
    38.         *pdest++ = *psrc++;  
    39.   
    40.     return dest;  
    41. }  
  • 相关阅读:
    智能家居项目(3):编译工具makefile
    9、Cocos2dx 3.0游戏开发找小三之工厂方法模式与对象传值
    Redis于windows在安装
    Gray Code -- LeetCode
    hdu 1575 Tr A(矩阵高速电源输入)
    phpstorm快捷键
    Reverse Linked List II -- LeetCode
    程序猿的故事-注定奉献给节目
    poj2112 Optimal Milking --- 最大流量,二分法
    POJ 3356 AGTC(最长公共子)
  • 原文地址:https://www.cnblogs.com/zhanglanyun/p/2634559.html
Copyright © 2011-2022 走看看