庫函式memcpy 與memmove 實現

2022-03-19 03:08:13 字數 865 閱讀 1903

原文:

根據msdn文件,當源區域與目標區域存在重疊時,memcpy()函式報錯,而memmove()函式可以處理重疊情況!

1/*2

* 函式名: memcpy 

3* 功  能: 從源source中拷貝n個位元組到目標destin中 

4* 用  法: void *memcpy(void* destin, const void* source, size_t n); 

5* 說  明: 記憶體拷貝

6*/7

8#include 

9#include //

getch標頭檔案

10#include //

assert標頭檔案

1112

typedef unsigned char

byte; 

13//typedef unsigned int size_t;

1415

16/*17

memcpy函式,如果記憶體重疊則報錯

18*/19

//src要保留

20void* memcpy(void* dst,const

void* src,size_t count) 

2130

return dst; 

31}32

33/*34

memmove函式,考慮了記憶體重疊的情況

35*/36

//src可以不保留

37void* memmove(void* dst,const

void* src,size_t count) 

3848

}49else

//50

57}58

return dst; 59}

C庫函式 實現memcpy和memmove

memcpy函式 功能 複製記憶體塊 將num個位元組的值從source指向的位置直接複製到destination指向的儲存塊。源指標和目標指標所指向的物件的基礎型別對此功能均無關 結果是資料的二進位制副本。該函式不檢查源中是否有任何終止的空字元 它始終精確地複製num個位元組。為避免溢位,目標和源...

經典面試題 實現memcpy庫函式

題目 已知memcpy的函式為 void memcpy void dst const void src size t count 其中dst是目的指標,src是源指標。不呼叫c c的memcpy庫函式,請編寫memcpy。解析 1 按照ansi american national standards...

strcpy函式與memcpy函式

strcpy函式與memcpy函式 6.2 字串與陣列 字串一般是用字元陣列的方式儲存,例如下面的str定義 char str 123456 這裡str是乙個字元陣列,它存放了乙個字串 123456 由於字串還有乙個結束符 0 所以此陣列的長度為7而不是6。6.2.1 strcpy函式與memcpy...