问题描述:写一个函数,完成内存之间的拷贝
- #include
- using namespace std;
- // 返回void *,可支持链式操作
- void*memcpy_(void *dest, const void *source, unsigned int c_length)
- {
- assert(dest && source);
- if(dest==source)return dest;
- char *p1=static_cast
(dest); - const char *p2=static_cast
(source); - if(p1>p2 && p1【笔试题/面试题|内存拷贝实现】
- {
- //存在内存重叠区域
- for(int i=c_length-1; i>=0; i--)
- p1[i]=p2[i];
- }
- else
- {
- for(int i=0;
i
- p1[i]=p2[i];
- }
- return dest;
- }
- int main()
- {
- char source[]="Hello, My name is shark/n";
- cout<
- char dest[30];
- memcpy_(&dest, &source, strlen(source));
- cout<
- getchar();
- return 0;
- }