11.24 C語言中memcpy函數實現

memcpy函數作用:

將由src指向地址為起始地址的連續n個字節的數據複製到以dest指向地址為起始地址的空間內,函數返回一個指向dest的指針

特別說明:

1.src和dest所指內存區域不能重疊

2.與strcpy相比,memcpy遇到‘\\0’並不會結束,而是一定會拷貝完n個字節

3.memcpy可以拷貝任何數據類型的對象,可以指定拷貝的數據長度

4.如果dest本身就有數據,執行memcpy()後會覆蓋原有的數據

5.dest和src都不一定時數組,任意的可讀寫的空間均可

6.如果要追加數據,則每次執行memcpy後,要將目標數組地址增加到所要追加數據的地址

具體實現代碼:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
void * my_memcpy(void *dest,void *src,unsigned count )
{
\tif (dest == NULL || src == NULL)
\t{
\t\treturn NULL;
\t}
\tchar* pdest =(char*) dest;
\tchar* psrc = (char*)src;
\twhile (count--)
\t{
\t\t*pdest++ = *psrc++;
\t}
\treturn dest;
}
int main()
{

\tchar src[] = "hello";
\tchar dest[] = "world";
\tmy_memcpy(dest, src, strlen(src));
\tprintf("%s", dest);
\tsystem("pause");
\treturn 0;
}/<stdlib.h>/<stdio.h>

最後,如果你想學C/C++可以私信小編“01”獲取素材資料以及開發工具和聽課權限哦!


分享到:


相關文章: