常考的函式有下面三個,memset,memcpy,memmove,一定要記住三個函式的函式原型,熟記返回值型別和引數型別,當然也不能忘記引數檢查
1 #include2 #include3using
namespace
std;45
void *my_memset(void *s, int
ch, size_t n)613
return
s;14}15
1617
intmain()
18
一定要先把void*的指標強制轉化成char *再進行操作,不然拿void*是沒辦法的
1 #include2using
namespace
std;34
void *my_memcpy(void *dest, void *src, size_t n)513
return
dest;14}
1516
intmain()
17
memcpy是沒有考慮記憶體覆蓋問題的,所以在進行自身拷貝的時候推薦使用memmove,vs2015的memcpy好像已經結局記憶體覆蓋的問題了,但是為了跨平台的安全考慮,使用memmove是絕對沒問題的
1 #include2 #include3using
namespace
std;45
6void *my_memcpy(void *dest, void *src, size_t n)715
return
dest;16}
17void *my_memmove(void *dest, void *src, size_t count)
1828}29
else
3035}36
return
dest;37}
3839
4041
intmain()
42
str函式和mem函式
1 兩函式的標頭檔案都是一樣的 2 str帶頭的函式可以處理字串,遇到null 0 就會停止操作,而mem帶頭的函式則不用,但是它需要指定複製值的長度,以位元組計算 3 常見str帶頭的函式有strlen strcpy strcat strcmp strncpy等,字串查詢。4 常見mem帶頭的函式...
學習筆記 mem族函式
功能 將以source作為起始位址的資料複製num個位元組到以destination為起始位址的資料中,不支援destination和source重疊的情況。函式返回destination指標。memcpy函式實現 void mymemcpy void dest,const void src,int...
mem函式系列及舉例
分析 我們通過上面的例子,就可以看到字元0和數字0的區別,當用數字0替換的時候會把數字0轉義成斜槓0,所以第乙個例子中,當我們把前五個位元組換成數字0 的時候,轉譯成斜槓0,斜槓0是字串結束的標誌,所以什麼都不輸出。第二個我們用字元0去替換的時候,很顯然換成了字元0.因為第乙個程式的陣列a是字元 型...