記憶體拷貝函式的實現

2021-10-08 21:08:56 字數 963 閱讀 1485

記憶體拷貝函式的實現

1、實現memcpy,void *memcpy(void *dst, const void *src, size_t len),需要考慮記憶體重疊的情況。注意:實際c庫中的memcpy是不考慮記憶體重疊這個問題的,也就是說使用memcpy時,dst和src的位址空間最好不要重疊。如果要考慮記憶體重疊,可以採用逆序拷貝即可(從尾到頭複製資料)。

/**

* @method: memcpy

* @access: public

* @return: void *

* @param : dst - 目的起始位址

* @param : src - 源起始位址

* @param : len - 所要拷貝空間大小byte

* @brief : 記憶體拷貝,實現了記憶體重疊和非重疊的拷貝

*/void

*memcpy

(void

*dst,

const

void

*src, size_t len)

void

*ret = dst;

if(dst <= src ||

(char

*)dst >=

(char

*)src + len)

}else

}return ret;

}

2、strcpy函式的原型是: char * strcpy(char * dstt,const char * src); 這裡給出strcpy的乙個可能實現(未考慮記憶體重疊)。如果要考慮記憶體重疊,可以像memmove一樣採用逆序拷貝即可。

char

*strcpy

(char

*dst,

const

char

*src)

模擬實現memcpy函式(記憶體拷貝函式)

第一種 include include include void my memcpy void dest,const void src,int count return dest 返回目標空間的起始位址 void show int arr2,int arr1,int sz printf n int ...

拷貝函式和記憶體操作拷貝

關於幾個常見函式 strcpy,strncpy,memcpy,memmove 那麼現在開始乙個乙個實現吧!include include include include define max 20 關於指標傳參時的斷言和const修飾的習慣有必要養成 比較常用的就是strcpy了 需要注意的是des...

記憶體拷貝函式 void memcpy

函式原型 void memcpy void dest,void src,int n 返回值 該函式返回乙個指向目標儲存區destin的指標。所需標頭檔案 c include cstring 應用說明 按照位元組 byte 拷貝實現的my memcpy void my memcpy void dst,...