記憶體拷貝函式的實現
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,...