C语言实用算法系列之memcpy、memmove函数原理与实现
生活随笔
收集整理的這篇文章主要介紹了
C语言实用算法系列之memcpy、memmove函数原理与实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
直接看代碼
#include<stdio.h> #include<string.h> /*返回指向pDest的指針*/ void* MemCopy(void* pDest, const void* pSrc, int nCount) {char* p = (char*)pDest;char* p1 = (char*)pSrc;while (nCount--)*p++ = *p1++;return pDest; } /*返回指向pDest的指針,分有重疊和無重疊兩種情況*/ void* MemMove(void* pDest, const void* pSrc, int nCount) {char* dest = (char*)pDest;char* src = (char*)pSrc;if (dest > src && dest < src + nCount){//有重疊src += nCount;dest += nCount;while (nCount--)*--dest = *--src;}else{//無重疊while (nCount--)*dest++ = *src++;}return pDest; }char str1[7] = "aabbcc";int main(void) {printf("The string: %s\n", str1);MemMove(str1 + 2, str1, 4);printf("New string: %s\n", str1);strcpy_s(str1, sizeof(str1), "aabbcc"); // reset stringprintf("The string: %s\n", str1);memmove(str1 + 2, str1, 4);printf("New string: %s\n", str1); }輸出結(jié)果
總結(jié)
以上是生活随笔為你收集整理的C语言实用算法系列之memcpy、memmove函数原理与实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果平板电脑ipad3价格(苹果3平板多
- 下一篇: OpenMP之双重for循环并行计算改进