内存的移动和拷贝
-
-
- void *memmove(void *dest , const void *src , size_t count)
- {
- assert( (dest != NULL) && (src != NULL));
- assert( count > 0 );
-
- char *psrc = (char *) src;
- char *pdest = (char *) dest;
-
- if( pdest < psrc )
- {
-
- while( count-- )
- *pdest++ = *psrc++;
- }
- else if( psrc < pdest )
- {
-
- psrc = psrc + count - 1;
- pdest = pdest + count - 1;
- while( count-- )
- *pdest-- = *psrc--;
- }
- return dest;
- }
-
-
-
- void *memmcpy(void *dest , const void *src , size_t count)
- {
- assert( (dest != NULL) && (src != NULL));
- assert( count > 0 );
-
- char *psrc = (char *) src;
- char *pdest = (char *) dest;
- while( count-- )
- *pdest++ = *psrc++;
-
- return dest;
- }
原文地址:https://www.cnblogs.com/zhanglanyun/p/2634559.html