注:没有考虑内存重叠的情况
#include "stdafx.h"
#include <iostream>
#include <assert.h>
void* myMemCpy(void *pDst, const void *pSrc, size_t iCount)
{
assert(NULL != pDst);
assert(NULL != pSrc);
char *pDT = (char*)pDst;
const char *pST = (const char*)pSrc;
while (iCount--) //没考虑内存重叠
{
*pDT++ = *pST++;
}
return pDst;
}
int _tmain(int argc, _TCHAR* argv[])
{
char src[10] = "hellhelo";
char dst[10];
myMemCpy(dst, src, strlen(src) + 1);
std::cout << dst;
getchar();
return 0;
}